更新具有相同ID和相同值的多个行

时间:2016-01-05 17:11:10

标签: php mysql pdo

我有一个简单的更新查询,它在某种程度上不起作用。已经尝试改变它一段时间并将其与其他更新查询进行比较,但无论我改变什么,它都不起作用。应使用相同的值更新同一个表中具有相同teacher_id的两行。

以下是查询:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 
1064 You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for 
the right syntax to use near 'WHERE teacher_id = '20'' at line 1' in /var/www/xxx/html/teacher.php:225 
Stack trace: #0 /var/www/xxx/html/teacher.php(225): 
PDO->query('UPDATE teachers...') #1 {main} thrown in /var/www/xxx/html/teacher.php on line 225

我知道这是一个非常简单的问题,但我不断收到以下错误:

+---+-------------+------------+
|id | teacher_id  | status_id  |
+---+-------------+------------+
| 1 |     20      |      1     |
| 2 |     20      |      1     |
+---+-------------+------------+

相应的教师行看起来像:

/product/16/var1/value1/var2/value2...

1 个答案:

答案 0 :(得分:0)

正如评论所示,$status_id可能存在问题。

由于您使用的是PDO,因此建议您准备语句。

$smt = $pdo->prepare("UPDATE teachers SET status_id=? WHERE teacher_id=?");
$smt->execute( array($status_id, 20) );