我想插入一个数组到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