SQL 当我 运行 更新命令时创建新行
SQL creates new row when I run an update command
我有这个脚本(如下),它用于更新 table 中特定行的值。我正在按 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();
替换为:
$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id=$'id'";
有了这个:
$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id='$id'";
首先,我认为是时候从 MySQL 前往 MySQLi 或 PDO。
其次,您需要对字符串使用 '
并且您在 WHERE 子句中的错误:
id=$'id'
您可以像这样轻松使用:
id=$id
或:
id='$id'
我有这个脚本(如下),它用于更新 table 中特定行的值。我正在按 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();
替换为:
$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id=$'id'";
有了这个:
$sql = "UPDATE jcontact SET certlevel='$certLevel' WHERE id='$id'";
首先,我认为是时候从 MySQL 前往 MySQLi 或 PDO。
其次,您需要对字符串使用 '
并且您在 WHERE 子句中的错误:
id=$'id'
您可以像这样轻松使用:
id=$id
或:
id='$id'