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()
错误,我应该使用@
抑制错误吗?它不是为了“解决”,请注意。它旨在为您提供信息以供解决。目前没有人知道。