你的代碼是不是在這個代碼和預處理語句
require_once("conn.php");
$user_name = $conn->real_escape_string($_POST["username"]);
$code = $conn->real_escape_string($_POST["code"]);
$name = $conn->real_escape_string($_POST["groupname"]);
$sql_update = $conn->prepare("update `users` set `group` = ? where `username` = ?");
$sql_update->bind_param("ss",$name,$user_name);
$sql_update->execute();
$sql_update->close();
$conn->close();
而且conn.php文件安全
看應該是這樣的
$config = parse_ini_file('config.ini'); // Connection infos.
$conn = mysqli_connect('localhost',$config['username'],$config['password'],$config['db_name']);
if($conn === false) {
die("Something was wrong ! Please try again later."); // Error if connection not ok.
}
$conn->set_charset("utf8");
創建的public_html文件夾以外的文件命名config.ini寫連接數據
[db_connection]
username = username
password = password
db_name = dbname
該函數將參數綁定到SQL查詢並告訴數據庫參數是什麼。 「sss」參數列出參數所屬的數據類型。 s字符告訴mysql該參數是一個字符串。
參數可以爲四種類型之一:
i - integer
d - double
s - string
b - BLOB
瞭解更多here
什麼類'$ conn'的實例?而且,你知道這個代碼容易受到SQL注入嗎? –
通常,至少PDO的' - > query'返回'false'或結果集,但* never *'true'。所以這可能是這裏的簡單錯誤......(我相信mysqli也是這樣)。此外,在失敗的情況下,您可以(僅用於調試目的和devel)'echo $ conn-> error'(mysqli)或'print_r($ conn-> errorInfo())'(PDO)。這就是說,**請使用準備好的語句!** – Jakumi
$ conn是我的public_html文件夾中的另一個文件,它只定義了數據庫名稱,用戶名,密碼和服務器名稱。這是我第一次使用PHP,我不熟悉注射安全。我不知道我是否應該關心他們,如果它是一個非常基本的應用程序,我可能不會發布它。 –