【问题标题】:SQL script works in MySQL, but fails with mysqli->query(); why?SQL 脚本在 MySQL 中有效,但 mysqli->query() 失败;为什么?
【发布时间】:2023-03-05 00:41:01
【问题描述】:

我的 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 有我遇到的限制吗?

【问题讨论】:

  • 您的信息有点不清楚。错误是什么,发生在哪里?
  • 您连接的用户是否在数据库中有必要的权限来删除和创建表?

标签: php mysql mysqli


【解决方案1】:

尝试使用multi_query()

必须执行多个语句或多个查询 mysqli_multi_query()。声明的个别声明 字符串用分号隔开。

$link->multi_query($sql)

您连接的用户必须在您的数据库中拥有必要的权限或全局权限。

【讨论】:

  • 谢谢。但最后我不得不分解我的 sql 文件以分隔查询以避免多个查询的额外过程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 2020-04-11
相关资源
最近更新 更多