将DropDown值保存到Php MySQL

时间:2015-04-13 04:26:46

标签: php mysql database xampp

我想知道如何将下拉选择值保存到数据库,我收到一条错误消息“无效输入:您的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'); ";

3 个答案:

答案 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;等等)