【发布时间】:2015-07-23 03:16:44
【问题描述】:
我使用下面的代码将选定的数组值输入到我的数据库中,具体取决于他们选择的国家/地区。
$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>';
一切正常,除了在我的 MySQL 数据库中存储的值是 $countrycode
所以它为英国保存为英国,我希望它保存为英国。我哪里错了?
PS;如果有人愿意,我有完整的国家/地区列表,亲切的问候,Shanie。
编辑:问题已解决!
已替换'<option value="' . $countrycode. '">' . $country . '</option>';
'<option value="' . $country. '">' . $country . '</option>';
感谢克里斯。
【问题讨论】:
-
请记住
mysql_*函数已弃用。请迁移到 PDO。 -
也许
$location应该是$countries[$_POST['location']]并将$countries数组向上移动到顶部? -
您的代码很容易受到 sql 注入的攻击。请使用准备好的语句而不是字符串连接