2

我不知道出了什么问题..我已经看到了很多不同的方法,有人可以告诉我这到底是怎么回事..它抛出这个错误“错误:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在“desc”附近使用正确的语法)VALUES(“30.59”、“blue shirt”、“a really cool blue shirt ')' 在第 1 行"。我已经尝试了多种方法,结果相同..

<?php
$title = 'blue shirt';
$desc = 'a really cool blue shirt';
$price = 30.59;

$user = 'foo';
$pass = 'Bar';

try{
$conn = new PDO('mysql:host=examplehost;dbname=exampledb_name',$user,$pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(!$conn){
    echo"couldnt connect to db";
}else {
    echo 'connected like a boss!!' . '<br>';
    $stmt = $conn->prepare("INSERT INTO 68_items (price, title, desc) VALUES (:price,:title,:desc)");
    if(!$stmt->execute(array(
            ':price' => $price,
            ':title' => $title,
            ':desc' => $desc))
    ) {
        echo'statment failed';
    }else {
        echo 'statment success, ' .  $stmt->rowCount() . 'rows affected.';
    }
}
} catch (PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>
4

1 回答 1

6

descmysql 中的保留字,因此您应该使用反引号将其转义:

"INSERT INTO 68_items (price, title, `desc`) VALUES (:price,:title,:desc)"
于 2013-02-12T20:41:48.117 回答