-2
<?php

if (isset($_GET['firstname'])){
    $fname = $_GET['firstname'];
}

mysql_query("UPDATE student SET firstname = $fname WHERE studentID = $id");

?>

我有一个表格可以更新我的数据库。在表单的底部有一个更新按钮。当我使用此代码时,它不起作用。

我可以在我的 mysql_query 中输入 $fname 的地方放入一个“tom”,它会更新。

我还可以回显 $fname 变量,它会正确回显表单中的内容。

但我无法让数据库采用 $fname。

任何建议都会很棒,谢谢。

4

2 回答 2

2

您忘记了名称周围的引号:

mysql_query("UPDATE student SET firstname = '$fname' WHERE studentID = $id");

顺便说一句,您的代码容易受到 SQL 注入的影响。请解决这个问题。参见best-way-to-prevent-sql-injection-in-php

于 2012-11-30T15:04:00.643 回答
1

你缺少单引号$fname$id(如果它是一个字符串),

mysql_query("UPDATE student SET firstname = '$fname' WHERE studentID = '$id'");

注意:不推荐使用 Mysql_* 扩展,并且对 SQL 注入开放。所以,避免使用它们。请改用 PDO 或 Mysqli_*。

于 2012-11-30T15:04:09.623 回答