Uncaught PDOException: SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа - PullRequest
0 голосов
/ 06 июля 2019

Я не знаю, почему я получаю ошибку

Неустранимая ошибка: Uncaught PDOException: SQLSTATE [42000]: Синтаксическая ошибка или нарушение доступа: 1064 В синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с «Препроцессором» в строке 1 в /var/www/html/phpquiz/result.php:17

Произошла ошибкапри выполнении подготовленного оператора, т.е. при выполнении $cho->execute();

<?php
session_start();
if(!isset($_SESSION['score'])){
    $_SESSION['score'] = 0;
}

if(isset($_POST['submit'])){
    $arr = array("a", "b", "c", "d", "e");
    for($i = 1; $i < 6; $i++){
        $text = $_POST['que_'.$arr[$i-1]];
        echo "$text<br> ";
        $cho = $pdo->prepare("SELECT id from choices where `text` = $text");
        $cho->execute();
        $r = $cho->fetch(PDO::FETCH_ASSOC);
        echo $r;
    }
}

?>

1 Ответ

2 голосов
/ 06 июля 2019

Ваше подготовленное заявление неверно.Вам необходимо заменить переменную PHP на заполнитель, а затем передать фактическое значение в функцию execute.

$cho = $pdo->prepare("SELECT id FROM choices WHERE `text` = ?");
$cho->execute([$text]);
$r = $cho->fetch(PDO::FETCH_ASSOC);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...