php - SELECT 查询的 PDO 语法错误

标签 php mysql pdo

我有一个基本查询,可以获取所有字段并导出文件,但它一直给我一个错误。我的代码如下所示:

$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/

相关文章:

php - APE - Ajax 推送引擎

php - Splstack 是如何工作的?为什么?

mysql - 我们可以在聚合函数中使用聚合函数吗?

php - 默认使用 mysqli_store_result

php - 使用 MSSQL 的 PDO 返回无效游标

PHP PDO 连接失败抛出警告和脚本执行超时

php - PHP 中的 VB if 语句

php - ASP 与 PHP 编译

java - 无法填充池 : when starting jboss application

php - PDO 和 Singleton 类的数据库连接