此代碼可以工作並將表添加到我的數據庫中。我的問題是如何用預先準備好的陳述來保護它。向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'變量來創建表?可能不是最好的計劃。您至少需要清理/清理表名。 –
我要保護它免受注射 –