Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除数组中的第一个字段并插入MySQL_Php_Mysql_Arrays - Fatal编程技术网

Php 删除数组中的第一个字段并插入MySQL

Php 删除数组中的第一个字段并插入MySQL,php,mysql,arrays,Php,Mysql,Arrays,我有一个数组,我想插入mysql数据库 Array ( [posts] => Array ( [0] => Array ( [channel_id] => 18560 [category_id] => 41 [channel_name] => Bohemian FC 1 - 1 Chelsea [channel_image] => IMG-20190416-WA0087.jpg [channel_url] => nourl [channel_descr

我有一个数组,我想插入mysql数据库

Array ( [posts] => Array ( [0] => 
Array ( [channel_id] => 18560 [category_id] => 41 [channel_name] => Bohemian FC 1 - 1 Chelsea [channel_image] => IMG-20190416-WA0087.jpg [channel_url] => nourl [channel_description] => [channel_type] => URL [video_id] => [category_name] => Last day Matches ) [1] => 
Array ( [channel_id] => 18559 [category_id] => 41 [channel_name] => Nigeria 2 - 1 South Africa [channel_image] => IMG-20190416-WA0087.jpg [channel_url] => nourl [channel_description] => [channel_type] => URL [video_id] => [category_name] => Last day Matches ) ) ) 
Array ( ) Array ( ) Array ( ) Array ( ) 
insert.php

foreach($array as$row)//使用foreach循环提取数组值
{
$query.=“插入tbl_频道(类别id、频道名称、频道图像、频道url、频道描述、频道类型、视频id)值(“$row[“类别id”]。”、““$row[“频道名称”]。”、“$row[“频道图像”]。”、“$row[“频道url”]、“$row[“频道描述”]、“$row[“频道类型”]、”、“$row[“视频”。”;//进行多次插入查询
表_数据=“”;
}
if(mysqli_query($connect,$query))//运行Mutliple Insert query
{    
echo“导入的数据
”; }

我不能在MySQL表中插入值。我在构建查询字符串的循环中遇到错误
非法字符串偏移量“category\u id”
我的代码有什么错误(抱歉,语言不好)

请添加一个快速检查以查看是否存在正确的数组元素,如果存在,则仅将它们添加到查询字符串中

if (isset($row['category_id'])) {
   // add the row to the query string
  }
然后,正如@Qirel所说,您不能运行多个查询,因此需要调用
mysqli\u multi\u query()


正如@Qirel所指出的,这种东西是使用预先准备好的语句的理想场所。在循环之前准备查询,然后在循环中使用不同的参数值调用它。它增加了针对漏洞的安全级别,并且可能会略微提高性能。

您也不能在同一个
mysqli_query()
调用中运行多个查询。还要注意SQL注入漏洞。尽管您需要修复插入数据的方式(准备好的语句,每行运行一次),看起来您还需要修复循环,因为其中缺少一个级别的数组-
foreach($array['posts']as$row)