|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-12-05 06:00 UTC] germanh1982 at gmail dot com
Description:
------------
I have the following database with two rows (simplified just to show the issue):
sqlite> select * from bl;
addr tstamp
---- -------------
1 10
2 20
when running the (prepared) query:
"select * from bl where 30 - tstamp > :param AND :param = :param", with ":param" bound to the value 15, I get no rows as result.
I would expect to receive the row with tstamp = 10 as correct result (as I do if I run the query with the sqlite3 command line client).
SQlite version: 3.7.2
Test script:
---------------
$ sqlite3 test.sqlite
sqlite> CREATE TABLE bl (address text unique, tstamp integer not null);
$ sqlite3 test.sqlite
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table bl (address text unique, tstamp integer not null);
sqlite> insert into bl values (1,10);
sqlite> insert into bl values (2,20);
=====
<?php
$db = new PDO("sqlite:test.sqlite");
$q = $db->prepare("select * from bl where 30 - tstamp > :param AND :param = :param");
$q->bindValue(":param", 15);
$q->execute();
print_r($q->fetchAll(PDO::FETCH_ASSOC));
?>
=====
Expected result:
----------------
Running the following script, on an sqlite3 shell, I get the following (expected output):
=====
sqlite> select * from bl where 30 - tstamp > 15 AND 15 = 15;
addr tstamp
---- -------------
1 10
=====
The same happens running the following script (note the only difference with the non-working script is that I replaced the first instance of ":param" with the corresponding hard-coded value):
=====
$q = $db->prepare("select * from bl where 30 - tstamp > 15 AND :param = :param");
$q->bindValue(":param", 15);
$q->execute();
print_r($q->fetchAll(PDO::FETCH_ASSOC));
=====
Actual result:
--------------
See description.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 13:00:01 2025 UTC |
$q->bindValue(":param", 15, PDO::PARAM_INT);