Arthur Walker Arthur Walker - 4 months ago 16
MySQL Question

Unable to use variable in MySQL query

I am trying to get a MySQL query to return a a number of rows with the following code:

<?php

$resultset1 = '0, 100';

$sth1 = $conn->prepare ("SELECT * FROM data1 ORDER BY name LIMIT '$resultset'");
$sth1->execute();

?>


This gives me the following error:


Fatal error: Uncaught exception 'PDOException' with message '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 ''0, 100'' at line 1' in /home/search/Search/statement1.php:8 Stack trace: #0 /home/search/Search/statement1.php(8): PDOStatement->execute() #1 /home/search/Search/result.php(20): include('/home/search/Se...') #2 /home/search/public_html/session.php(93): include('/home/search/Se...') #3 {main} thrown in /home/search/Search/statement1.php on line 8


If I replace
'$reultset1'
, in the query, with
0, 100
everything works fine.

Answer

The query you were trying to execute looked like this:

SELECT * FROM data1 ORDER BY name LIMIT '0, 100'

The parameters to LIMIT should not be in quotes.

$sth1 = $conn->prepare ("SELECT * FROM data1 ORDER BY name LIMIT $resultset");