数据未从表单插入DB

时间:2011-04-13 14:59:59

标签: php mysql

我有一个表格来自我注册的用户,表格的代码如下:

    <div class="contentArea">
<form action="NewUser.php" method="POST">
<div class="regd">
<ul>
    <li class="regdTitle">Please enter your details:</li>
    <li class="regdLable">First Name</li>
    <li><input type="Text" class="regdInput" name="first_name" /></li>
    <li class="regdLable">Last Name</li>
    <li><input type="Text" class="regdInput" name="last_name" /></li>
    <li class="regdLable">Password</li>
    <li><input type="Password" class="regdInput" name="pass" /></li>
    <li class="regdLable">Re-Type Password</li>
    <li><input type="Password" class="regdInput" name="re_pass" /></li>
    <li class="regdLable">Email</li>
    <li><input type="Text" class="regdInput" name="email" /></li>
    <li class="regdLable">Country</li>
    <li><select name="country" style="width: 300px; height: 20px;">
        <option value=" " selected="selected"></option>
        <option value="ACT">ACT</option>
        <option value="NSW">NSW</option>
        <option value="NT">NT</option>
        <option value="QLD">QLD</option>
        <option value="SA">SA</option>
        <option value="TAS">TAS</option>
        <option value="VIC">VIC</option>
        <option value="WA">WA</option>
    </select></li>
    <li><input type="button" value="Submit" class="regdBtn" alt="Submit"
        title="Submit" name="submit"/></li>
    <li><input type="button" value="Cancle" class="regdBtn" alt="Cancle"
        title="Cancle" onclick="location.href='index.php'" /></li>
</ul>
</div>
</form>
</div>

我有NewUser.php文件来自我将表格的值插入数据库,代码如下:

<?php
// Includes
require_once ('Includes/dbconn.php');
require_once ('Includes/functions.php');

$first_name = $_POST ['first_name'];
$last_name = $_POST ['last_name'];
$pass = $_POST ['pass'];
$repass = $_POST ['re_pass'];
$email= $_POST ['email'];
$country = $_POST ['country'];


$query = "INSERT INTO user (first_name, last_name, pass, email, country)
            VALUES ('{$first_name}','{$last_name}','{$pass}','{$repass}','{$email}','{$country}')";

$result = mysql_query ( $query, $conn );

if (isset ( $result )) {
    echo "Registration sucessful";
    //redirect_to ( UserRegd.php );
} else {
    echo "<p>User Registration Failed" . mysql_error () . "</p>";
}

?>

<?php mysql_close($conn);?>

连接代码如下:

<?php
    include_once 'Constants/ConConst.php';

    $conn = mysql_connect(DB_SERVER, DB_USER, DB_PASS);

    if(!$conn)
    {
        die('Connection not set'. mysql_error());
    }

    $db = mysql_select_db(DB_NAME, $conn);

    if(!$db)
    {
        die('Database not found'.mysql_error());
    }

?>

我无法将表单值插入到我的数据库中......我可以知道代码中的错误在哪里。

任何有意义的回应都将受到高度赞赏并提前表示感谢。是否有任何在线编辑器,如jsfiddle.com,我们可以将我们的代码用于演示。

4 个答案:

答案 0 :(得分:2)

您的INSERT语句错误。你试图传递太多的价值。 {repass}不应该在VALUES()列表中。

这是正确的:

$query = "INSERT INTO user (first_name, last_name, pass, email, country)
            VALUES ('{$first_name}','{$last_name}','{$pass}','{$email}','{$country}')";

答案 1 :(得分:1)

if (isset ( $result )) { <= THIS LINE BEING WRONG

应该只是

if ($result) {

答案 2 :(得分:0)

一个问题可能是您尝试插入更多VALUES,然后为。

指定了字段

现在它设定了 FIRST_NAME = $ FIRST_NAME
姓氏= $姓氏
通过= $通过
电子邮件= $再通过
国家= $电子邮件
??? = $国家

这就是一个问题 第二个可能是你的SQL格式 它应该是:
INSERT INTO table_name(column1,column2,column3,...)
VALUES(value1,value2,value3,...)
所以你不需要{}。
我不确定逗号。

还要通过回显变量的值来检查,以确保表单正确提交。

请阅读此内容以获取更多帮助:
http://www.w3schools.com/sql/default.asp

我查了一个我做过的数据库:

//将信息发送到数据库
//要发送到数据库的sql字符串
$ sql =“INSERT INTO ".$dbname."tableFirst NameLast Name)VALUES('。$ first_name。”','“。$ last_name。”') ;“;

对于VALUES来说,“$ var。”',所以你可以更好地看到它的内容

//查询数据库
$ result = mysql_query($ sql);

您需要使用变量的正确连接 确保使用`,而不是'。对于列名称和数据库名称和表名称周围 它位于1的左侧。

您也没有正确查询。
尝试类似我的东西,它应该正常工作和验证。

我注意到有人在谈论不受SQL注入等保护, 检查服务器设置/功能,现在大多数都会自动防止出现安全风险。

如果没有,请尝试使用XAMPP。

答案 3 :(得分:0)

查看您的查询 INSERT INTO用户(first_name,last_name,pass,email,country)             VALUES('{$ first_name}','{$ last_name}','{$ pass}','{$ repass}','{$ email}','{$ country}')“  它们是五个值(first_name,last_name,pass,email,country) 它们是6个值 ( '{$ FIRST_NAME}', '{$姓氏}', '{$}传', '{$}再通过', '{$电子邮件}', '{$国家}')” :)