运行更新命令时,SQL会创建新行

时间:2016-02-03 05:07:15

标签: php mysql database-connection

我有这个脚本(下面),用于更新表中特定行的值。我正在通过ID进行搜索,ID被设置为自动递增的主键整数。当我运行此脚本时,行不会更新 - 而是创建一个全新的行。

以下是代码:

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$id = $_POST['id'];
$certLevel = $_POST['certlevel'];

$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id=$'id'";

if (!mysql_query($sql)) {
    die('Error: ' . mysql_error());
}

mysql_close();

2 个答案:

答案 0 :(得分:1)

替换它:

$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id=$'id'";

有了这个:

$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id='$id'";

答案 1 :(得分:1)

首先,我认为是时候从MySQL进入MySQLi或PDO。

其次,您需要在字符串中使用'以及在WHERE子句中使用错误:

id=$'id'

你可以像这样轻松使用:

id=$id

或:

id='$id'