sql >> Database >  >> RDS >> Mysql

Hoe kan ik een reeks PDO-parameters doorgeven en toch hun typen specificeren?

Als u de standaardinstelling van PDO::ATTR_EMULATE_PREPARES uitschakelt , dan zal het werken. Ik kwam er net achter dat die instelling standaard is ingeschakeld voor mysql, wat betekent dat je nooit echt voorbereide instructies gebruikt, php maakt intern dynamische sql voor je aan, waarbij de waarden voor je worden geciteerd en de tijdelijke aanduidingen worden vervangen. Ja, een grote wtf.

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

De voorbereidingen worden standaard geëmuleerd vanwege prestatieredenen.

Zie ook BOB MySQL:PDO::ATTR_EMULATE_PREPARES gebruiken of niet?



  1. Hoe de veldwaarde te bepalen die niet kan worden geconverteerd naar (decimaal, zwevend, int) in SQL Server

  2. Een kolom verwijderen uit een tabel in MySQL

  3. Hoe wireshark te gebruiken om mysql-query sql duidelijk vast te leggen?

  4. Fout tijdens het verzenden van QUERY-pakket