使用 MySQL 更新一行数据


Updating a row of data with MySQL

我希望所有用户都能够更新他们的关于页面。这是我在 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应用程序的绝对最简单的方法。

将预准备语句与参数绑定一起使用,您将安全无虞。