Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 - Fatal编程技术网

在表上添加多行。PHP-MySQL

在表上添加多行。PHP-MySQL,php,Php,我从以下url检索以下代码的一部分: 然而,我面临一个问题。我的代码如下: //create an array $array = array(); //add some values //1st var_dump($array); var_dump($array); $msql = array(); foreach( $array as $row ) { $msql[] = '('.$row['trend'].', '.$row['image_url'].','.$row['sk

我从以下url检索以下代码的一部分: 然而,我面临一个问题。我的代码如下:

//create an array
$array = array();

//add some values

//1st var_dump($array);
var_dump($array);

$msql = array(); 
foreach( $array as $row ) {
    $msql[] = '('.$row['trend'].', '.$row['image_url'].','.$row['sku'].')';
}

 var_dump($msql);   



 $insertData = "INSERT INTO Data_Info (trend, image_url,sku) VALUES ".implode(',', $msql);
 mysql_query($insertData) or die(mysql_error());

 mysql_close($conn);
我创建的表包含三个字段->趋势、图像\ url、sku

第一次var_转储的结果:

array(6) { 
   [0]=> string(7) "mytrend" 
   [1]=> string(70) "http://re.n.o.coat.png" 
   [2]=> string(12) "militarycoat" 
   [3]=> string(7) "mytrend" 
   [4]=> string(73) "http://re.n.o.padded.png" 
   [5]=> string(15) "signaturepadded" 
} 
array(6) {
   [0]=> string(8) "(m, m,m)" 
   [1]=> string(8) "(h, h,h)" 
   [2]=> string(8) "(m, m,m)" 
   [3]=> string(8) "(m, m,m)" 
   [4]=> string(8) "(h, h,h)" 
   [5]=> string(8) "(s, s,s)" 
} 
Unknown column 'm' in 'field list'
2n var_转储的结果:

array(6) { 
   [0]=> string(7) "mytrend" 
   [1]=> string(70) "http://re.n.o.coat.png" 
   [2]=> string(12) "militarycoat" 
   [3]=> string(7) "mytrend" 
   [4]=> string(73) "http://re.n.o.padded.png" 
   [5]=> string(15) "signaturepadded" 
} 
array(6) {
   [0]=> string(8) "(m, m,m)" 
   [1]=> string(8) "(h, h,h)" 
   [2]=> string(8) "(m, m,m)" 
   [3]=> string(8) "(m, m,m)" 
   [4]=> string(8) "(h, h,h)" 
   [5]=> string(8) "(s, s,s)" 
} 
Unknown column 'm' in 'field list'

我不明白出了什么问题。有人能帮我吗?

您正在循环输入数组的每个元素,然后尝试访问一个没有属性的字符串上的属性。(奇怪的是它什么都没做)

为循环尝试一个

for($i = 0; $i < count($array); $i+=3)
{
    $msql[] = '('.$array[$i].', '.$array[$i+1].','.$array[$i+2].')';
}
($i=0;$i { $msql[]='('.$array[$i].','.$array[$i+1].','.$array[$i+2].'); }

或者以不同的方式定义$数组以适应循环。

您正在尝试使用$行['trend']等访问数组的关联数组(多维)。。。当您没有它时,如您的第一个var_转储中所示。您的第一个var_转储应该如下所示:

$array = array(0 => array("trend"=> "value", "image_url" => "value, "sku" => "value"), 1=> array( .... ) and so on.
$array = array(0 => array("trend"     => "put", 
                          "image_url" => "something", 
                          "sku"       => "in here"), 
               1 => array("trend"     => "value1", 
                          "image_url" => "value2", 
                          "sku"       => "value3"),
               /* etc.. */
               );

字段列表中的未知列“m”是由以下内容生成的

$insertData = "INSERT INTO Data_Info (trend, image_url,sku) VALUES ".implode(',', $msql);
值必须封装在括号中。数据也应该用引号括起来。现在是:

VALUES (m, m, m),(h, h, h)
它应该是:

VALUES (('m', 'm', 'm'),('h', 'h', 'h'))
       ^                               ^
       |_________encapsulated__________|
否则,数据将被视为列(
字段列表中的未知列'm'


其次,您的数组不包含键
trend
image\u url
sku
,因此从中获得的值是该数组中每个字符串的第一个字母:

  • (m,m,m)
    来自
    “mytrend”
  • (h,h,h)
    来自
    “http://re.n.o.coat.png“
因此,按如下方式创建阵列:

$array = array(0 => array("trend"=> "value", "image_url" => "value, "sku" => "value"), 1=> array( .... ) and so on.
$array = array(0 => array("trend"     => "put", 
                          "image_url" => "something", 
                          "sku"       => "in here"), 
               1 => array("trend"     => "value1", 
                          "image_url" => "value2", 
                          "sku"       => "value3"),
               /* etc.. */
               );

你说得对。但是,现在我有一个例外:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行“://re.n.o.coat.png,militarycoat)”附近使用的正确语法,您可以添加生成的整个查询吗?Mysql语法错误总是有点模糊。