Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组值输入数据库_Php_Html_Mysql - Fatal编程技术网

Php 将数组值输入数据库

Php 将数组值输入数据库,php,html,mysql,Php,Html,Mysql,我使用下面的代码将选定的数组值输入到数据库中,具体取决于它们选择的国家 $Location = mysql_real_escape_string($_POST['location'], $Link); MYSQL_Query ("INSERT INTO users(location)VALUES('$Location')"); $countries = array( "AF" => "Afghanistan", "UK" => "United Kingdom

我使用下面的代码将选定的数组值输入到数据库中,具体取决于它们选择的国家

 $Location = mysql_real_escape_string($_POST['location'], $Link);

 MYSQL_Query ("INSERT INTO users(location)VALUES('$Location')");

 $countries = array(
    "AF" => "Afghanistan",
    "UK" => "United Kingdom",
    "US" => "United States",
    "AS" => "American Samoa", //etc..
    echo '<select name="location">'; 

  foreach($countries as $countrycode =>$country) { 
  echo '<option value="' . $countrycode. '">' . $country . '</option>'; 
    } 
  echo '</select>'; 
$Location=mysql\u real\u escape\u字符串($\u POST['Location',$Link);
MYSQL_查询(“插入用户(位置)值(“$location”)”;
$countries=数组(
“AF”=>“阿富汗”,
“英国”=>“英国”,
“美国”=>“美国”,
“AS”=>“美属萨摩亚”//等。。
回声';
foreach($countrycode=>$country的国家){
回声“.$country.”;
} 
回声';
一切正常,除了我的MySQL数据库,存储的值是
$countrycode
所以,它把英国存为英国,我希望它把英国存为英国。我错在哪里

顺便说一句,如果有人愿意的话,我有完整的国家名单,谢谢你,Shanie

编辑:问题解决了! 替换了
“.$country.”;
带有
“.$country.”;


感谢Chris。

您需要将
选项的
值设置为
名称,而不是
代码

<option value="' . $country. '">' . $country . '</option>';
“.$country.”;
否则就是代码

文件:

如果选择此选项,此属性的内容表示要随表单提交的值。如果省略此属性,则该值取自option元素的文本内容


请记住
mysql.*
函数已弃用。请迁移到PDO。可能
$location
应该是
$countries[$\u POST['location']]
并将
$countries
数组上移到顶部?您的代码很容易受到sql注入的影响。请使用预先准备好的语句而不是字符串连接。您节省了时间!谢谢您,克里斯,我非常感谢您的回复。