Php PDO sql语法错误?
我有一个名为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 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/
<?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忘了提那个。我已经把它加到我的答案里了。谢谢你的加入!