2016-02-03 5 views
0

Вот мой PHP кодНеверный номер параметра в Php PDO

$data=array(
     'title'=>$_POST['title'], 
     'description'=>$_POST['description'], 
     'image_path'=>$filepath 
    ); 
    print_r($data); 
    $result=$connect->prepare("INSERT INTO `mir_news`(`title`,`description`,`image_path`) VALUES (?,?,?)"); 
    $result->execute($data); 

Я получаю эту ошибку

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\xampp\htdocs\miradmin\views\add_news.php:24 Stack trace: #0 C:\xampp\htdocs\miradmin\views\add_news.php(24): PDOStatement->execute(Array) #1 C:\xampp\htdocs\miradmin\index.php(46): require('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\miradmin\views\add_news.php on line 24

print_r($data) будет хорошо.

ответ

1

Вы хотите только values массива, а не keys:

$result->execute(array_values($data)); 

В качестве альтернативы, определить их по-другому раньше:

$data = array($_POST["title"], $_POST["description"], $filepath); 
//... 
$result->execute($data); 
+0

Спасибо Сработало –

+0

@BlessanKurien не беспокоится, рад, что я мог бы помочь. Не забудьте принять ответ! – Ben

0

Попробуйте array_values при прохождении $data

$ result-> ех мило (array_values ​​($ данных)); $ result-> execute ($ data);

array_values() возвращает все значения из массива и численно индексирует массив.

-1

Попробуйте просмотреть переменную «$ filepath», в которой происходит значение?

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