我有一个基本查询,可以获取所有字段并导出文件,但它一直给我一个错误。我的代码如下所示:
$array = ['users'];
foreach($array AS $i){
$file = $i.'.sql';
$stmt = $pdo->prepare("SELECT * FROM ? INTO OUTFILE ?");
try {
$stmt->execute(array($i,$file));
} catch (PDOException $e) {
$log .= $e -> getMessage().'........ \n ';
}
}
我总是收到此错误:
SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“users”INTO OUTFILE“users.sql”附近使用的正确语法。
正确的语法是什么?
最佳答案
它(语法)应该相反
SELECT * INTO OUTFILE ? FROM ?;
请参阅文档 here
编辑:
如JAL澄清一下,表名不能作为 PreparedStatement
下的参数传递。所以你的查询应该像
SELECT * INTO OUTFILE ? FROM users;
关于php - SELECT 查询的 PDO 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20726613/