我希望所有用户都能够更新他们的关于页面。这是我在 php 中用来查询 MySQL 更新的字符串。我收到错误。我做错了什么?
$insert_query= "UPDATE user_info SET bio= $bio_ans, residence= $residence_ans, work=
$work_ans WHERE user_id= $user_id";
mysqli_query($connect, $insert_query)
or die('error with query1');
如果更新值不是整数,则需要在该值两边使用引号。
$insert_query= "UPDATE user_info
SET bio= '$bio_ans',
residence= '$residence_ans',
work = '$work_ans' WHERE user_id= '$user_id'";
mysqli_query($connect, $insert_query)
or die('error with query1');
$insert_query= "UPDATE user_info SET bio= $bio_ans, residence= $residence_ans, work=$work_ans WHERE user_id= $user_id";
mysqli_query($connect, $insert_query)
or die('error: $mysqli->error');
$mysqli->error
会让您具体知道出了什么问题。
$insert_query= "UPDATE user_info SET bio='" . $bio_ans. "', 住所='" . $residence_ans."', 工作=
".$work_ans."其中user_id= '$user_id'";mysqli_query($connect, $insert_query)或死亡("查询 1 错误");
除了缺少引号(如RPM所示)之外,您正在做的真正错误的事情是使用变量插值来创建SQL查询。
这仅对数值变量是可以接受的,并且只有在使用前已将其强制转换为数值类型时才可接受。 字符串转义应该是安全的,但非常容易出错(执行两次,添加新值时忘记添加等)。 最轻微的滑倒都会为SQL注入打开一个巨大的洞,这是破解Web应用程序的绝对最简单的方法。
将预准备语句与参数绑定一起使用,您将安全无虞。