我试图在MySQL中使用一个SQL查询从数组中添加多个值,但我得到了这个错误:
Notice: Array to string conversion in /var/www/index/test2.php on line 103 Warning: implode(): Argument must be an array in /var/www/index/test2.php on line 103
以下是错误的代码部分:
$sqlas = array();
foreach( $rezai as $rezas )
{
if (!empty($rezas)) {
$rezas = str_replace('http://', '', strip_tags($rezas));
}
else
{
$rezas = 'empty_rezas';
}
$failoID = explode('/', $rezas);
if (!isset($failoID[2]) || empty($failoID[2]))
{
$failoID[2] = 'neraID';
}
if (isset($rezas) && !empty($rezas))
{
$urlr = str_replace('www.mysite.com', '', $rezas);
}
$sqlas[] = '("'.mysqli_real_escape_string($conn, $failoID[2]).'", "'.mysqli_real_escape_string($conn, $urlr).'", "'.$uzklausaClean.'")';
}
$conn->query('INSERT INTO four_failai2 (id, url, uzklausa) VALUES '.implode(','. $sqlas).'');
$conn->close();
第103行是这一行:
$conn->query('INSERT INTO four_failai2 (id, url, uzklausa) VALUES '.implode(','. $sqlas).'');
它说Argument必须是一个数组,但我在foreach循环之前将$ sqlas定义为空数组,然后我在循环中添加值。有什么想法吗?
答案 0 :(得分:1)
你的内幕函数中有一个点而不是逗号。
将implode(','. $sqlas)
更改为implode(',', $sqlas)
。就像现在一样,你试图将包含逗号的字符串与数组(e.i.数组到字符串转换)连接起来。