簡體   English   中英

未捕獲的 PDOException: SQLSTATE[42000]: 語法錯誤或訪問沖突

[英]Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation

我不知道為什么我會收到錯誤

致命錯誤:未捕獲的 PDOException:SQLSTATE[42000]:語法錯誤或訪問沖突:1064 您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在 /var/www/html/phpquiz/result.php:17 中第 1 行的“預處理器”附近使用的正確語法

執行准備好的語句時發生錯誤,即執行$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;
    }
}

你的准備語句是錯誤的。 您需要用占位符替換 PHP 變量,然后將實際值傳遞給execute函數。

$cho = $pdo->prepare("SELECT id FROM choices WHERE `text` = ?");
$cho->execute([$text]);
$r = $cho->fetch(PDO::FETCH_ASSOC);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM