Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd konwersji PDO z tablicy na ciąg znaków

execute() metoda oczekuje pojedynczej tablicy. Z dokumentacji:

Z array($id,$array) przekażesz wielowymiarową tablicę, która wygląda tak:

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

)

Z pewnością nie tego oczekuje. Potrzebuje jednowymiarowej tablicy zawierającej wartości do wstawienia.

Aby rozwiązać ten problem, musisz zmodyfikować format tablicy. Dodaj identyfikator na początku tablicy, na przykład:

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

Jeśli zmienna ID jest generowana dynamicznie, możesz ręcznie dodać ją do tablicy za pomocą array_unshift() funkcja:

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

... a następnie zmodyfikuj execute() zadzwoń w ten sposób:

$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. Jak połączyć zapytanie SELECT + WHERE z zapytaniem INSERT?

  2. Czy ograniczenie zapytania do jednego rekordu poprawia wydajność?

  3. Codeigniter:Błąd w zapytaniu ORDER BY CASE

  4. Oblicz różnicę czasu między dwoma rzędami

  5. błąd zmienianie tabeli, dodawanie klucza obcego ograniczenia uzyskiwanie błędu Nie można dodać lub zaktualizować wiersza podrzędnego