繁体   English   中英

使用PHP将数组插入MySQL

[英]Insert array in to MySQL with PHP

我正在尝试使用PHP将数组插入MySQL。 我遵循了此处给出的出色建议,使用implode命令,它对于一个数组非常有用,但是这个似乎已经死了。 这个数组与其他数组略有不同,但是我不知道如何解释这些差异。

这是我的代码:

    $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 [name] =>下班回家的夜[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] =>数组([0] => 39.547792011872 [1] => -104.86300536431)[end_latlng] =>数组([0] = > 39.655485888943 [1] => -104.88656991161)[版本] => 1355428869 [运动员] =>数组(>> [id] => 832001 [name] => Bob Kratchet [用户名] => bob_kratchet)[bike] =>数组([id] => 281303 [name] => Giant Allegre通勤者)[maximum_speed] => 29.3 [卡路里] => 372> [average_power] => 107 [commute] => 1)

我是一个完全菜鸟...

由于您的$ride_detail只是一个数组,因此$row21570117 (整数), Night ride home from work 21570117 Night ride home from work 21570117 (字符串),依此类推。 然后,代码尝试获取每个元素的id密钥,然后获取name密钥,依此类推,从而生成大量的[错误信息]错误消息。

看起来您打算让$ride_detail为数组数组,或者您实际上根本不需要foreach循环。

尝试这个

   foreach( $ride_detail as $row ) {
     $sql = array( $row['id'], mysql_real_escape_string($row['name']), $row['version'])  ;

         }
  mysql_query('INSERT IGNORE INTO ride (ride_id, name, version) VALUES  ($sql[0] ,$sql[1] , $sql[2] ) ');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM