在表上添加多行。PHP-MySQL
我从以下url检索以下代码的一部分: 然而,我面临一个问题。我的代码如下:在表上添加多行。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
//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语法错误总是有点模糊。