簡體   English   中英

在表上添加乘法行。 PHP-MySQL

[英]Add multiply rows on a table. PHP-MySQL

我從以下URL檢索部分下面提到的代碼: 通過php數組將多行插入mysql但是,我遇到了問題。 我的代碼如下:

//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);

我創建的表包含三個字段->趨勢,image_url,sku。

第一個var_dump的結果:

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" 
} 

2n var_dump的結果:

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循環。

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

或不同地定義$ array以適合您的循環。

如第一個var_dump中所示,您嘗試使用$ row ['trend']等訪問數組的關聯數組(多維)...。 您的第一個var_dump應該如下所示:

$array = array(0 => array("trend"=> "value", "image_url" => "value, "sku" => "value"), 1=> array( .... ) and so on.

Unknown column 'm' in 'field list'由以下方式生成:

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

VALUES必須封裝在方括號中。 數據也應該用引號引起來。 現在是:

VALUES (m, m, m),(h, h, h)

它應該是:

VALUES (('m', 'm', 'm'),('h', 'h', 'h'))
       ^                               ^
       |_________encapsulated__________|

否則,數據將被視為列( Unknown column 'm' in 'field list'


其次,你的陣列不包含鍵trendimage_urlsku ,所以你從他們那里得到的值是數組中的每個字符串的第一個字母:

  • (m, m,m)來自"mytrend"的首字母
  • (h, h,h)來自"http://re.nocoat.png"
  • 等等

因此,像這樣創建數組:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM