Syntax problem PDO and bindvalue
| From: | Stephen | Date: | Mon, 12 Dec 2011 11:49:53 +0000 |
| Subject: | Syntax problem PDO and bindvalue | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-315980@lists.php.net to get a copy of this message | ||
So I am getting this SQL error:
Error selecting photographs: SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''4'' at line 2
My code is:
function updatephotos($dbh, $x) {
echo $x['number'] . "<br />"; <<<<< this echo is 4
$sql = "SELECT * FROM photographs WHERE
photo_filename LIKE '%2%' LIMIT 0, :q;";$stmt = $dbh->prepare($sql); try {
$stmt->bindValue( ':q', $x['number'], PDO::PARAM_INT );
$stmt->execute();
} catch (PDOException $e) {
return 'Error selecting photographs: ' . $e->getMessage();
}
while ( list( $id, $name, $alt, $caption) = $stmt->fetch(PDO::FETCH_NUM)) {
echo $name . "<br />";
}return "test worked" ; } If I hard code the SQL as: $sql = "SELECT * FROM photographs WHERE
photo_filename LIKE '%2%' LIMIT 0, 4";all works well. Can anyone see what is wrong? How can I see the prepared SQL statement before it is executed? Thanks Stephen