你的代码是不是在这个代码和预处理语句
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,我不熟悉注射安全。我不知道我是否应该关心他们,如果它是一个非常基本的应用程序,我可能不会发布它。 –