Php 传递给join()的参数无效

Php 传递给join()的参数无效,php,join,mysqli,Php,Join,Mysqli,因此,我制作了这个脚本,它应该使用mysqli\u fetch\u array和mysqli\u query获取一个数组,所有这些都可以正常工作,不会出现错误,但是在我更改某些内容后,使用另一个函数,例如,如果我更改了语气、昵称或其他内容,它会显示一个错误 Warning: join(): Invalid arguments passed in Main.php on line 526 我们一直在尝试使用while循环来解决这个问题,同样的事情也发生了 $info = mysqli_fetch

因此,我制作了这个脚本,它应该使用
mysqli\u fetch\u array
mysqli\u query
获取一个数组,所有这些都可以正常工作,不会出现错误,但是在我更改某些内容后,使用另一个函数,例如,如果我更改了语气、昵称或其他内容,它会显示一个错误

Warning: join(): Invalid arguments passed in Main.php on line 526
我们一直在尝试使用
while循环来解决这个问题,同样的事情也发生了

$info = mysqli_fetch_array(mysqli_query($con, "SELECT id, nickname, mood, credits, colour, curhead, curface, curneck, curbody, curhands, curfeet, curflag, curphoto, rank * 146 FROM `sync_users` WHERE id='" . mysqli_real_escape_string($con, $raw[5]) . "';"), MYSQLI_ASSOC);
$client->sendPacket("%xt%gp%-1%" . join("|", $info) . "%");
print str_replace('Array', '', print_r($info, true));

我试着问其他几个熟悉php的朋友,他们也无法给我一个解决方案。

数组的一个或多个元素不是字符串。在查询中强制转换有问题的字段,或者首先通过
strval()
传递所有字段。

首先不要使用mysql_*函数,因为它们已被弃用,请尝试使用例如

我认为如果
mysqli\u fetch\u array
返回一个空的resultset,那么
join
将失败,因为mysqli返回一个FALSE

也许这是你的问题

下面是一堂关于基本调试的课: 如果PHP函数抱怨输入参数,最好验证这些参数。

var_dump($info);
您的代码很可能会输出
(bool)false

这让我们相信SQL查询没有返回任何行,所以是时候调试查询了


希望有帮助

这可能与您的问题无关,但在对数据库运行查询时进行错误检查不会有任何伤害。顺便说一句,
print\u r()
不如调试工具
var\u dump()
可靠。是的,它并不影响任何东西,但我讨厌看到错误,尽管我确实更喜欢看到错误,因为我不想要有bug的函数和东西,出于某种原因,我更喜欢
print\u r
,因为它更干净,不是数组。我认为Mysql扩展不受欢迎,而不是Mysqli扩展。是的,你是对的,我认为Mysqli扩展也不受欢迎。不幸的是没有解决任何问题:(仍然会弹出
join()
错误,我应该使用
@
抑制错误吗?它不是为了“解决”,请注意。它旨在为您提供信息以供解决。目前没有人知道。