Re: mysqlnd_qc (mysqlnd query cache) 1.0.1 with prepared statement support

From: Date: Tue, 13 Jul 2010 17:55:08 +0000
Subject: Re: mysqlnd_qc (mysqlnd query cache) 1.0.1 with prepared statement support
References: 1 2 3 4  Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-7341@lists.php.net to get a copy of this message
Lukas Kahwe Smith schrieb:
On 13.07.2010, at 19:26, Ulf Wendel wrote:
Benjamin Eberlei schrieb:
Actually missing prepared statements and unbuffered queries were the only issues I had with the Query Cache so far. Can i compile the Mysqlnd + Query Cache PECL Trunk against 5.3.99-DEV only to test it?
... remember that PDO emulates prepared statements by default.
by default? since when?
Since when does it not? Try: nixnutz@linux-fuxh:~/php/php-src/trunk_qc> sapi/cli/php -d mysqlnd.debug="d:t:O,/tmp/pdo.trace" -r 'var_dump(phpversion()); $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "root"); $stmt = $pdo->prepare("SELECT 1 FROM DUAL LIMIT ?"); $stmt->execute(array(2)); var_dump($stmt->errorInfo());' string(10) "5.3.99-dev" array(3) { [0]=> string(5) "42000" [1]=> int(1064) [2]=> string(149) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'' at line 1" } That is the classical PDO emulation sucks bug that get's bogussed frequently. And the cause is in the log: http://pastebin.com/taq3JeeN . The log is a bit bloated because of QC, but still you see
mysqlnd_conn::query
| | info : conn=97 query=SELECT 1 FROM DUAL LIMIT '2' | | >mysqlnd_conn::simple_command | | | info : command=QUERY ok_packet=11 silent=0 Here is your COM_QUERY = C API mysql_query --- no sign of a native prepared statement. Ulf

« previous php.pecl.dev (#7341) next »