2011-04-13 57 views
0

我通过从i注册的用户有一个表格,该表格的代码是如下:数据不是插入到从DB形式

<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文件从i插入代码的形式,以数据库的值,是如下:

<?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这样的在线编辑器,我们可以把我们的代码放在演示中。

+1

你应该做的第一件事就是在代码中放入'die($ query)'来查看你的实际SQL语句的样子。这样做,然后在这里发布结果 – JohnP 2011-04-13 15:02:22

+0

你应该使用PDO而不是旧的方法联系mysql数据库 - http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps- pdo-for-database-access/ – Calum 2011-04-13 15:07:20

+2

您的查询似乎很容易受到SQL注入的影响 - 请务必在代码生效之前解决此问题:) – 2011-04-13 15:09:27

回答

2

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

这是正确的:

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

我一直保持着重新出现......我认为这可能导致了错误..其他明智的我正在验证通过,并在客户端重新传递... – 2011-04-13 15:12:27

0

好一个问题可能是您正在尝试插入更多的值,则指定字段。

现在它设置
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。“”,所以你可以看到更好的东西,说

//查询数据库
$结果= mysql_query($的SQL);

您需要使用的变量正确串接
制作确保你使用',而不是”。对于列名和周围的数据库名和表名
这是的1

您还没有正确的查询。
左试试像我这样的,它应该工作和瓦利日期正确。

我注意到有人在谈论没有被防止SQL注入等,
检查你的服务器设置/功能,大多数现在自动防止最安全的风险。

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

+0

也Shulnel上校说的是真实的。 – Richard 2011-04-13 15:25:53

+0

@Richard我正在使用XAMPP – 2011-04-13 15:31:11

+0

@理查德我修正了......什么@Col Shrapnel建议 – 2011-04-13 15:32:05

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

应该只是

if ($result) { 
0

LOOKAT查询 INSERT INTO用户(名字,姓氏,传递,电子邮件,国家) VALUES( '{$如first_name}',“{$姓氏}','{$ pass}','{$ repass}','{$ email}','{$ country}')“ 它们是五个值(名,姓,通,电子邮件,国家) 和他们是6个值 ('{$ first_name}','{$ last_name}','{$ pass}','{$ repass}','{$ email}','{$ country}')“ :)