我想知道如何将下拉选择值保存到数据库,我收到一条错误消息“无效输入:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册正确的语法在附近使用。“当我实施Gender DropDown时。
这是代码
if(empty($_POST['Gender'])){
$Gender = '';
$flag=1;
} else
$Gender = ($_POST['Gender']);
选择:
<select id="Gender" name="Gender" class="input-xlarge">
<option>Select Gender</option>
<option value="Male">Male</option>
<option value="Female">Female</option>
输入:
$sql = " INSERT INTO User(FirstName, LastName, Gender, UserName, Password, reEnterPassword, EmailAdd, reEnterEmailAdd)
VALUES ('$FirstName', '$LastName', '$Gender', $UserName', '$EPassword', '$EreEnterPassword', '$EmailAdd', '$reEnterEmailAdd'); ";
答案 0 :(得分:1)
在$ UserName附近使用错过的单引号,
试试这个
$sql = " INSERT INTO User(FirstName, LastName, Gender, UserName, Password, reEnterPassword, EmailAdd, reEnterEmailAdd)
VALUES ('$FirstName', '$LastName', '$Gender', '$UserName', '$EPassword', '$EreEnterPassword', '$EmailAdd', '$reEnterEmailAdd'); ";
答案 1 :(得分:0)
问题在于你的php mysql select语句的形成方式:
$sql = " INSERT INTO User(FirstName)
VALUES ('$FirstName', '$LastName'); ";
从双引号中的所有变量名中删除单引号。
或者在开头使用单引号并对变量进行处理,如下所示:
' . $FirstName . '
这样可以解决问题:
$sql = ' INSERT INTO User(FirstName, LastName, Gender, UserName, Password, reEnterPassword, EmailAdd, reEnterEmailAdd)
VALUES ('.$FirstName.', '.$LastName.', '.$Gender.', '.$UserName.', '.$EPassword.', '.$EreEnterPassword.', '.$EmailAdd.', '.$reEnterEmailAdd.')';
同时查看以下答案:Single quotes or double quotes for variable concatenation?
P.S。你的应用程序完全容易受到sql注入攻击。您应该研究如何清理用户输入。
答案 2 :(得分:0)
$sql = " INSERT INTO User(FirstName, LastName, Gender, UserName, Password, reEnterPassword, EmailAdd, reEnterEmailAdd)
VALUES ('$FirstName', '$LastName', '$Gender', '$UserName', '$EPassword', '$EreEnterPassword', '$EmailAdd', '$reEnterEmailAdd')";
1)$ UserName之前缺少单引号,
2)圆形支撑完成后删除半圆,
3)尝试使用&#34;。&#34; Concatination运算符所以你可以Ger完美的变量名称, 喜欢(&#39;。$ FirstName。&#39;,&#39;。$ LastName。&#39;,&#39;。$性别。&#39;等等)