【问题标题】:PHP MySQL Multi-statement works on my webpage but not on XAMPPPHP MySQL 多语句适用于我的网页,但不适用于 XAMPP
【发布时间】:2011-09-29 21:25:00
【问题描述】:

所以我用这段代码连接 MySQL 并执行多条语句:

$connect=@mysql_connect($host,$user,$pass,false,65536) or die("Can't connect");
mysql_select_db($base,$connect);

连接后我会这样做:

mysql_query("CREATE TABLE IF NOT EXISTS tablename ...;\nINSERT INTO tablename ...;");

我使用此代码来执行包含上述相同代码的备份文件(\n=新行)。当我在我的网页(托管服务器)上运行此脚本时,它可以工作,但在我使用 XAMPP 的本地计算机上却显示错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO tablename' at line 2

我检查了 php.ini,我也有 safe_mode = Offsql.safe_mode = Off

任何想法我错过了什么?

【问题讨论】:

  • 删除 \n,因为它不是有效的 SQL 令牌。
  • 谢谢,但在文件中它实际上是一个新行,我输入\n 只是为了让它更简单。无论如何,PHP 实际上会将其转换为新行。

标签: php mysql xampp multi-query


【解决方案1】:

根据PHP手册,mysql_query不支持多查询。但是,在 cmets 中有一个人说这可能:

但是,似乎支持多个查询。您只需将标志 65536 作为 mysql_connect 的 5 参数 (client_flags) 传递。 (Source)

另一方面,手册只提到了函数的两个参数,所以我想知道如果第 5 个参数真的有用,我们应该将什么作为第 3 个和第 4 个参数传递!

【讨论】:

  • 您可能正在查看mysql_query 手册,mysql_connect 函数确实有 5 个参数。我将那个 nubmer 传递给mysql_connect,当我运行多个语句时它可以在我的托管服务器上运行,但不能在 localhost (XAMPP) 上运行。
猜你喜欢
  • 2021-02-23
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 2016-05-02
  • 2012-07-31
  • 2014-03-07
  • 2020-08-27
  • 1970-01-01
相关资源
最近更新 更多