我无法执行长脚本,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()运行每个语句。