如何将数组插入mysql数据库?

时间:2016-07-25 21:04:54

标签: php mysql arrays database

我有以下数组:

$dati = array(
    "data" => array(
        'address_complete'=>$data->results[0]->formatted_address, 
        'address_square'=>$data->results[0]->address_components[1]->long_name,
        'location'=>$data->results[0]->address_components[2]->long_name,
        'postal_code'=>$data->results[0]->address_components[7]->long_name,
        'data_ora'=>$tmp_date
    )
);

我要插入$dati["data"]['location'] in database. 我该如何修复

mysql_query("INSERT into utenti(city) VALUES ('$dati[data][location]')") or die (mysql_error());

3 个答案:

答案 0 :(得分:0)

首先,使用适当的变量插值:

mysql_query("INSERT into utenti(city) VALUES ('{$dati["data"]["location"]}')") or die (mysql_error());

其次mysql_扩展程序已弃用,请改用MySQLiPDO_MySQL

答案 1 :(得分:0)

PHP的解析器并不贪婪,双引号字符串中的多维数组将无法正确解析。 e.g。

$arr['a']['b'] = 'c';
echo "$arr[a][b]"; 

将按预期打印Array[b],而不是c,因为PHP会在第一个[]键之后停止解析数组。

您必须使用{}扩展表示法:

echo "{$arr['a']['b']}"; // prints c as expected

答案 2 :(得分:0)

使用下面的内容

mysql_query("INSERT into utenti(city) VALUES ('".$dati['data']['location']."')") or die (mysql_error());
  

注意:不推荐使用mysql_扩展名,而是使用MySQLi或PDO_MySQL。