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注入的影响。请使用预先准备好的语句而不是字符串连接。您节省了时间!谢谢您,克里斯,我非常感谢您的回复。