php - 如何使用 PHP::PDO 执行带变量的 mysql 脚本?

标签 php mysql sql pdo

我无法执行 pdo 抛出异常的长脚本:

SQLSTATE[HY000]: General error

如果我提交不包含变量的脚本,它运行时不会出现问题。 相同的脚本在 phpmyadmin 界面上运行。

这是我的代码片段:

 try {
 $dsn = "mysql:host=" . DB_SERVER . ";dbname=" . DB_DEFAULT;
 $db = new PDO($dsn, DB_USER, DB_PASS);
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $q = $db->query($query);
 if (!$q) {
 echo $db->errorInfo();
  } else {
        $rows = $q->fetchAll(PDO::FETCH_ASSOC);
    }
} catch (PDOException $e) {
    var_dump($e);
 }

这是一些不由 PDO 执行的测试:

SET @ra_LMC:=80.9;
SELECT @ra_LMC;

我应该如何使用 pdo 执行多行脚本?

谢谢
阿曼。

最佳答案

PDO 不允许在一个 query() 请求中执行多个语句。 但是您的@ra_LMC 变量应该在当前连接中可见,因此您可以将第二行 (SELECT) 放入新的 query() 调用中。

要读取整个脚本,您必须解析文件并通过调用 query() 运行每个语句。

关于php - 如何使用 PHP::PDO 执行带变量的 mysql 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4683110/

相关文章:

php - 如何从 MySQL 表中正确获取结果

java - 将应用程序引擎 JDO 应用程序移植到 MySql 后端

php - CakePHP:创建新的 HABTM 行而不是更新其他行

java - 用于在存储模式的给定列上匹配输入字符串的 SQL

sql - 寻求 MS SQL 函数的解释

php - 为什么我的 pg_query 更新方法会跳过行?

php - API Key PHP/MYSQL 的作用

mysql - 将 scrumler 插件安装到 redmine 时出现内部错误

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Table 'bus' already exists

php - 用户注册时创建 MySQL 表