我想插入一個數組到MySQL使用PHP。我遵循這裏給出的優秀建議來使用implode命令,它對於一個數組非常有用,但是這個似乎正在死亡。這個數組與另一個稍有不同,但我不知道如何解釋這個差異。插入數組到MySQL與PHP
這裏是我的代碼:
$sql = array();
foreach($ride_detail as $row) {
$sql[] = '('.$row['id'].', "'.mysql_real_escape_string($row['name']).'",
"'.$row['version'].'")';
}
mysql_query('INSERT IGNORE INTO ride (ride_id, name, version) VALUES '.implode(',', $sql));
我一遍又一遍地得到這個消息。
Warning: Illegal string offset 'id' in ride_details.php on line 60
Warning: Illegal string offset 'name' in ride_details.php on line 60
Warning: Illegal string offset 'version' in ride_details.php on line 61
我的陣列(使用的print_r)的含量是:
陣列([ID] => 21570117 [名稱] =>夜騎下班回家[start_date_local] => 1347302039 [ELAPSED_TIME ] => 53:56 [moving_time] => 52:04 [distance] => 12.6 >> [average_speed] => 14.5 [elevation_gain] => 474 [location] => Englewood,CO [start_latlng] => Array([ 0] => 39.547792011872 [1] => -104.86300536431)[end_latlng] =>陣列([0] => 39.655485888943 [1] => -104.88656991161)[version] => 1355428869 [athlete] => id] => 832001 [name] => Bob Kratchet [username] => bob_kratchet)[bike] => Array([id] => 281303 [name] => Giant Allegre commut ER)[maximum_speed] => 29.3卡路里] => 372> [average_power] => 107 [下班] => 1)
我是一個完整的noob ...
[**請不要用'mysql_ *在新代碼'功能**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – Kermit
是print_r($ row)還是print_r($ ride_detail)? – 2013-01-15 23:44:26
另一條建議 - 如果您想在查詢中使用調用中的信息,在不同的表中存在多行 - 在任何字段中存儲多條數據都會讓您陷入背後遲早。您應該閱讀[數據規範化](http://databases.about.com/od/specificproducts/a/normalization.htm) – Basic