1

我知道以前有人问过这个问题,并且我已经完成了许多答案,现在正在解决其中一个答案,但是需要以下代码块的帮助。

<?php

$title = $_POST['title'];
$description = $_POST['description'];
$item_name = $_POST['item_name'];

$A = count($item_name);

include ("connection.php");

try {

    $set_details = "UPDATE images
                    SET title = :title,
                    description = :description,
                    WHERE item_name = :item_name";


$STH = $conn->prepare($set_details);

    $i = 0;
    while($i < $A) {
        $STH->bindParam(':title', $title[$i]);
        $STH->bindParam(':description', $description[$i]);
        $STH->bindParam(':item_name', $item_name[$i]);
        $STH->execute();
        $i++;
    }
}
catch(PDOException $e) {  
    echo "I'm sorry, but there was an error updating the database.";  
    file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}


?>

执行时我没有收到任何错误,也没有任何内容提交到 mysql 表,如果你发现了什么,请告诉我,或者如果有更好的方法来解决这个问题,你能否指点我一个教程,我没有太多工作PDO 或多行更新。

提前致谢。

对山姆:

print_r($STH->errorInfo());

输出是:

Array ( [0] => 42000 [1] => 1064 [2] => 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 item_name = '27'' at line 4 )
4

1 回答 1

5

后面多了一个逗号:description,应该是:

"UPDATE images
 SET title = :title,
 description = :description
 WHERE item_name = :item_name"
于 2013-05-07T23:01:11.283 回答