此代码可以工作并将表添加到我的数据库中。我的问题是如何用预先准备好的陈述来保护它。向MySQL添加表的准备语句(PHP)
require "conn.php";
$MyServer =($_POST["username"]);
$sql = ("CREATE TABLE $MyServer (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL
)");
if($conn->query($sql) === TRUE){
echo "Table created successfully";
}
我正在使用MySQLi。 我尝试了这一点,它不添加表。
$MyServer =($_POST["username"]);
if (!preg_match('^/[A-Za-z][A-Za-z0-9]{0,7}$/', $MyServer)) {
throw new Exception ('username unsuitable for use as a table name');
}
$sql = ("CREATE TABLE `$MyServer` (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL
)");
if($conn->query($sql) === TRUE){
echo "Table created successfully";
} else {
echo "Table is not created successfully ";
}
保护的是什么?你想保护的是什么?你的意思是你如何避免SQL注入和所有 – Jok3r
您允许用户根据'$ POST'变量来创建表?可能不是最好的计划。您至少需要清理/清理表名。 –
我要保护它免受注射 –