Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка при изпълнение на PDO масив в низ

execute() метод очаква единичен масив. От документацията:

С array($id,$array) ще предавате многоизмерен масив, който изглежда така:

Array
(
    [0] => 1
    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

)

Това със сигурност не е това, което очаква. Нуждае се от едномерен масив, съдържащ стойностите, които трябва да бъдат вмъкнати.

За да разрешите този проблем, трябва да промените формата на масива. Добавете идентификатора към началото на масива, както следва:

$array = array(1, "a",  "b",  "c");

Ако променливата ID се генерира динамично, тогава можете ръчно да я добавите към масива, като започнете с array_unshift() функция:

$id = "1";    
$array = array("a",  "b",  "c");
$array = array_unshift($array, $id);

... и след това променете execute() обадете се така:

$statement1->execute($array);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблеми с часовата зона с PHP и MySQL

  2. Разделете низ от колони на няколко колонни низове

  3. Разделете фиксираната стойност на месец на всеки ден и държава

  4. Отпечатайте данните в ResultSet заедно с имената на колоните

  5. Как да добавя повече от един ред със Zend_Db?