添加一个Mysql查询无法正常工作的数组项

时间:2016-09-20 12:44:21

标签: php arrays foreach

我试图在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定义为空数组,然后我在循环中添加值。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你的内幕函数中有一个点而不是逗号。

implode(','. $sqlas)更改为implode(',', $sqlas)。就像现在一样,你试图将包含逗号的字符串与数组(e.i.数组到字符串转换)连接起来。