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

Как мога да предам масив от PDO параметри, но въпреки това да посоча техните типове?

Ако изключите настройката по подразбиране на PDO::ATTR_EMULATE_PREPARES , тогава ще работи. Току-що разбрах, че тази настройка е включена по подразбиране за mysql, което означава, че всъщност никога не използвате подготвени изрази, php вътрешно създава динамичен sql за вас, цитирайки стойностите за вас и заменяйки заместителите. Да, майор wtf.

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$stmt = $pdo->prepare($sql);
$stmt->execute(array(5)); //works!

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

Вижте също PDO MySQL:Използвайте PDO::ATTR_EMULATE_PREPARES или не?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирам PDO в mysqli?

  2. Как да импортирам огромен CSV файл с 200,00 реда в MySQL (асинхронно и бързо)?

  3. Не може да се изпълни MySQL съхранена процедура от Java

  4. Как да задам параметри ORDER BY, използвайки подготвен PDO израз?

  5. Java еквивалент за mysql_real_escape_string() на PHP