我无法开展工作的代码应该执行以下操作:
非工作代码:
$sql = file_get_contents($root . '/data/init.sql');
$pdo = new PDO($dsn);
$stmt = $pdo->prepare($sql);
$stmt->execute();
工作代码
$sql = file_get_contents($root . '/data/init.sql');
$pdo = new PDO($dsn);
$result = $pdo->exec($sql);
请在非工作代码段中指出错误。
答案 0 :(得分:-1)
查看你的sql文件名 - 我假设你有一个DB init脚本。 也许是为了测试 无论如何,如果它是一个新的数据库/表,那么你就无法准备查询不存在的模式(表)。 原因是PDO :: prepare实际上需要与数据库协商查询的最佳执行和缓存。
另外 - documentation说:
"为将发布多个的语句调用prepare [....] 使用不同参数值的时间可以优化性能 你的申请[...]"
看起来你的init SQL没有参数化。 总而言之,对于这个特定的片段,您甚至不需要准备电话。
放弃它。