2013-06-17 1 views
2

Когда я запускаю функцию, которая включает этот код, я возвращаю null. Может ли кто-нибудь увидеть мою проблему?PHP PDO Подготовить и выполнить заявление

$statement = $connect->prepare("UPDATE pages " . 
"SET " . 
"pageTitle = :pageTitle, " . 
"pageSubTitle = :pageSubTitle, " . 
"pageContent = :pageContent, " . 
"pageMetaKeywords = :pageMetaKeywords, " . 
"pageMetaDescription = :pageMetaDescription, " . 
"pageDateUpdated = :pageDateUpdated " . 
"WHERE " . 
"pageID = :pageID"); 

$array = array(
    "pageTitle" => $_POST["pageTitle"], 
    "pageSubTitle" => $_POST["pageSubTitle"], 
    "pageContent" => $_POST["pageTitle"], 
    "pageMetaKeywords" => $_POST["pageContent"], 
    "pageMetaDescription" => $_POST["pageMetaDescription"], 
    "pageDateUpdated" => $_POST["pageDateUpdated"], 
    "pageID" => $_POST["pageID"] 
); 

$result = $statement->execute($array); 
+0

вы действительно должны смотреть в использовании [Heredoc] (http://php.net/heredoc) s, если вы собираетесь делать многострочные строки назначения , Гораздо меньше возможностей для ошибок и гораздо более читабельны в долгосрочной перспективе. –

+0

Хорошо, спасибо за этот совет. Я до сих пор не встречался с HEREDOCs и буду смотреть прямо сейчас. –

+0

На самом деле ничего не видно. heredoc хуже обычных строк. –

ответ

4

Параметры, которые вы передаете через массив, неверны. Вы должны префикс их :, а также:

$array = array(
    ":pageTitle" => $_POST["pageTitle"], 
    ^--- required 
+0

Работает как шарм. Спасибо. –

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

  • Нет связанных вопросов^_^