Неустранимая ошибка с подготовленным запросом в php / sql - PullRequest
0 голосов
/ 10 июля 2020

Я кодирую php, используя XAMPP на Windows. $bdd - это переменная, полученная с помощью:

$bdd = new PDO('mysql:host=localhost;dbname=memviv', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

Если я выполню следующий запрос, у меня не возникнет проблем:

$res_query = $bdd->query('SELECT * FROM cards WHERE due < NOW() AND (state = \'default\' OR state = \'recover\') ORDER BY RAND() LIMIT 50');

Однако, если я выполню аналогичный подготовленный запрос, где я введите положительное целое число $n_card в качестве значения LIMIT:

$res_query = $bdd->prepare('SELECT * FROM cards WHERE due < NOW() AND (state = \'default\' OR state = \'recover\') ORDER BY RAND() LIMIT ?');
$res_query->execute(array($n_cards));

Я получаю сообщение об ошибке:

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''50'' at line 1 in C:\xampp\htdocs\memviv\php\include\study_functions.php:14 Stack trace: #0 C:\xampp\htdocs\memviv\php\include\study_functions.php(14): PDOStatement->execute(Array) #1 C:\xampp\htdocs\memviv\php\study_model.php(71): compute_review_queue_db(50) #2 C:\xampp\htdocs\memviv\php\study_model.php(34): new_queue('review', 50) #3 C:\xampp\htdocs\memviv\php\study.php(5): study_model() #4 {main} thrown in C:\xampp\htdocs\memviv\php\include\study_functions.php on line 14

Не могли бы вы помочь мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...