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

PDO - заявка не дава резултати

Проблемът тук е, че свързвате параметри с bindParam , който използва обвързване чрез препратка. Във вашия случай трябва да използвате bindValue вместо това:

foreach( $binders as $key => $value ) {
    $sql->bindValue( $key, $value );
}

Или можете да предадете своя масив директно на execute() метод:

$sql->execute( $binders );

Както е описано в ръководството:

the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Така че, когато вашият foreach цикъл приключи $value има стойност на последния елемент от масива Apple . Така че, когато execute изпълнява и двете :ctid и :p1 стойностите стават равни на Apple . Разбира се, това не е това, което искате)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Операторът '<' е запазен. Грешка в PowerShell

  2. MySQL:Не мога да създавам/записвам във файл '/tmp/#sql_3c6_0.MYI' (Errcode:2) - Какво изобщо означава това?

  3. Ускоряване на голям брой актуализации и вмъквания на mysql

  4. Doctrine2 - Множество вмъквания в един кадър

  5. как да създадете MySql заявка за показване на текущо салдо от кредит и дебит, когато множество клиенти имат индивидуални салда