【问题标题】:Cannot execute multiple MariaDB queries using PHP无法使用 PHP 执行多个 MariaDB 查询
【发布时间】:2016-03-11 00:32:24
【问题描述】:

我在 MariaDB 中执行 SQL 查询时遇到了一个小问题。所有 PHP 变量都不为空,我想同时执行两个查询。在 MySQL 中它可以工作,但在 MariaDB 服务器中我不能,因为我得到一个错误我有一个查询:

UPDATE users SET name = $receivedName, email = $receivedEmail WHERE id = $id1; UPDATE posts SET id = $userid WHERE id = $receivedID

我得到的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UPDATE posts SET id = 50 WHERE id = 56 /* /takechange.php */' at line 1

我知道执行分配给单个变量的两个查询并不是一个好主意,但目前我几乎无法更改任何代码。我想这不是如何在 MariaDB 中加入多个查询。你能告诉我如何编辑这个查询吗?

提前致谢。

【问题讨论】:

  • 很明显:echo $query; - 尽管我强烈怀疑您在第一个查询结束时有错误转义的评论。另外,考虑用户和帖子是否以某种方式相关

标签: php mysql mariadb


【解决方案1】:

您需要使用 mysqli Multi Query 或单独执行您的语句。

如您所知,您有多个正在传递的语句。

Multi Query上的 PHP 手册页

执行一个或多个由 a 连接的查询 分号。

【讨论】:

  • 即使启用多查询功能也是一个坏主意——这是黑客对 SQL 注入进行恶作剧的另一种方式。无论如何,在一次调用中运行两个查询没有真正的必要,也没有优势。
  • @RickJames 它解释了语法错误。有时,大量调用是从某个地方加载的,他们不想将这些东西包装在一个 while 循环或其他用例中,比如一个代码块,只要你的手臂
  • @RickJames 我认为存在多查询的原因是您可以在没有黑客注入的情况下执行多个命令?因此在 mysql 查询中你只能执行一个?
猜你喜欢
  • 1970-01-01
  • 2021-10-30
  • 2016-08-30
  • 2020-02-20
  • 1970-01-01
相关资源
最近更新 更多