SQL 脚本在 MySQL 中有效,但 mysqli->query() 失败;为啥?
Posted
技术标签:
【中文标题】SQL 脚本在 MySQL 中有效,但 mysqli->query() 失败;为啥?【英文标题】:SQL script works in MySQL, but fails with mysqli->query(); why?SQL 脚本在 MySQL 中有效,但 mysqli->query() 失败;为什么? 【发布时间】:2012-12-23 22:38:15 【问题描述】:我的 SQL 脚本在 mysql Workbench 中成功运行。
以下给出错误:
$link = mysqli_connect(***********);
$result = $link->query($sql);
SQL 脚本执行一些操作,包括:
创建临时表 截断表 删除表 插入 选择执行此操作时出现错误:
-- 1.1 Creating temporary table for categories
drop table if exists exp_categories; -- just in case
create temporary table exp_categories
(
ID bigint not null,
Categories text not null,
PRIMARY KEY (ID)
) DEFAULT CHARSET=utf8;
-- 1.2 Inserting data...
-- few other statements here
-- last statement is SELECT
mysqli 有我遇到的限制吗?
【问题讨论】:
您的信息有点不清楚。错误是什么,发生在哪里? 您连接的用户是否在数据库中有必要的权限来删除和创建表? 【参考方案1】:尝试使用multi_query()
必须执行多个语句或多个查询 mysqli_multi_query()。声明的个别声明 字符串用分号隔开。
$link->multi_query($sql)
您连接的用户必须在您的数据库中拥有必要的权限或全局权限。
【讨论】:
谢谢。但最后我不得不分解我的 sql 文件以分隔查询以避免多个查询的额外过程。以上是关于SQL 脚本在 MySQL 中有效,但 mysqli->query() 失败;为啥?的主要内容,如果未能解决你的问题,请参考以下文章
在shell脚本中执行mysql,调用sql文件,将sql文件执行结果存入新的日志文件中,但日志文件没有sql结果
DBeaver执行sql脚本报错:CreateProcess error=193, %1 不是有效的 Win32 应用程序。
DBeaver执行sql脚本报错:CreateProcess error=193, %1 不是有效的 Win32 应用程序。