【发布时间】:2021-05-02 21:06:48
【问题描述】:
一个简单的例子
$connection = mysqli_connect("domain", "user", "psw", "db");
$response = mysqli_multi_query($connection, "
SET @a = 'foo';
SET @b = 'bar';
SELECT @a AS A, @b AS B
");
var_dump(mysqli_field_count(connection));
var_dump(mysqli_use_result($connection));
var_dump(mysqli_store_result($connection));
var_dump(mysqli_more_results($connection));
var_dump(mysqli_next_result($connection));
返回(美化)
int(0)
bool(false)
bool(false)
bool(true)
bool(true)
怎么了?我只是误解了如何从mysqli_multi_query 获取值吗?
为什么它在mysqli_field_count 中返回0?
如果出现语法错误,如何获取其编号或描述?
提前致谢!
【问题讨论】:
-
不要使用
mysqli_multi_query -
SET @a = 'foo';不会产生结果。这就是为什么你看到 0 -
mysqli_use_result和mysqli_store_result一起使用没有意义。显然你不知道mysqli_multi_query是干什么用的。不要使用此功能 -
@Dharman 我已经使用了这两个函数来显示它们的输出。我知道必须使用 mysqli_multi_query,这是一个简单的例子。在我的实际任务中,我需要一次发送 7 个语句,但这种情况或那种情况下的效果是一样的。
-
@Dharman 所以每个语句都有自己的输出,即使它实际上没有返回值(SET、INSERT…)?
标签: php mysql mysqli mysqli-multi-query