I don't think you're suppose to end your queries with a semicolon. Try: $sql = "SELECT * FROM photographs WHERE photo_filename LIKE '%2%' LIMIT 0, :q"; On Mon, Dec 12, 2011 at 1:49 PM, Stephen <stephen-d@xxxxxxxxxx> wrote: > 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 > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >