Re: Syntax problem PDO and bindvalue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 12/12/2011 01:49 PM, Stephen 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


$x = $x['number'];

$stmt->bindValue( ':q', $x['number'], PDO::PARAM_INT );

i didnt dig deep down the problem [might be some C thing, pointer access or ...] but this solves it.

Fatih P.
http://blog.teknober.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux