我有以下数组:
$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());
答案 0 :(得分:0)
首先,使用适当的变量插值:
mysql_query("INSERT into utenti(city) VALUES ('{$dati["data"]["location"]}')") or die (mysql_error());
其次,mysql_
扩展程序已弃用,请改用MySQLi
或PDO_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。