Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO sql语法错误?_Php_Mysql_Sql_Pdo - Fatal编程技术网

Php PDO sql语法错误?

Php PDO sql语法错误?,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有一个名为CMS的数据库,它有两列:id和data1 在尝试从数据库获取数据时,下面的代码出现以下错误 致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在第行的“table”附近使用正确的语法 php:4堆栈跟踪:0/var/pdo/index.php4: PDO->query'SELECT*fromt...1{main}抛出 /第4行的var/

我有一个名为CMS的数据库,它有两列:id和data1

在尝试从数据库获取数据时,下面的代码出现以下错误

致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在第行的“table”附近使用正确的语法 php:4堆栈跟踪:0/var/pdo/index.php4: PDO->query'SELECT*fromt...1{main}抛出 /第4行的var/pdo/index.php

为什么我会犯这个错误

这是我的代码:

<?php
    $db = new PDO('mysql:host=localhost;dbname=cms;charset=utf8', 'root', 'password');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $stmt = $db->query('SELECT * FROM table');

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $row['field1'];
    }
?>
table是一个保留字。有关完整列表,请参阅


如果仍要使用tablename“table”,可以使用backticks SELECT*FROM“table”

不要将table用作表名。您的数据库称为CMS。这张桌子叫什么?确实是:比我快5秒。@bart2puck你的答案更好,但因为“桌子”可以用。@kelunik忘了提那个。我已经把它加到我的答案里了。谢谢你的加入!