2013-05-07 14 views
1

Я знаю, что этот вопрос задан раньше, и я прошел через многие ответы и отработал один из этих answers now, однако мне нужна помощь в следующем блоке кода.PDO Обновление нескольких записей

<?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) 
+0

ли 'print_r ($ STH-> errorInfo()); 'выводить что-нибудь? – Sam

+0

Я добавил ошибку на вопрос, спасибо – Owen

ответ

5

У вас есть лишняя запятая после :description, он должен быть:

"UPDATE images 
SET title = :title, 
description = :description 
WHERE item_name = :item_name" 
+0

... Я так разочарован в себе прямо сейчас ... но спасибо – Owen

+1

Это очень легко пропустить! – Sam

Смежные вопросы