首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP插入不插入数据

问PHP插入不插入数据
EN

Stack Overflow用户
提问于 2014-02-04 19:20:07
回答 3查看 162关注 0票数 2

下面是我的Html和php代码,它们都位于单独的文件中,用于我的insert查询--它试图插入注册详细信息,但始终失败,这是我出错的任何原因。我试过使用不同类型的语音标记,但它仍然不起作用,我的教科书展示了这种方法。数据库可以登录用户并检查用户是否存在,但不能插入数据。谢谢。

代码语言:javascript
复制
<?php
include 'db.php';

session_start();
?>
<!DOCTYPE html>

<html>

<head>

</head>
<?php 
include 'header.php';
?>

    <div id="logincontent"> 

    <div id="registerform" class="loginform-in">
        <h1>Registration</h1>
        <fieldset>
            <form id="myForm" action="registerscript.php" method="POST">
            Email: <input type="text" name="username"/><br />
            Password: <input type="password" name="pass"/><br />
            First Name: <input type="text" name="fname"/><br />
            Last Name: <input type="text" name="lname"/><br />
            Address 1: <input type="text" name="add1"/><br />
            Address 2: <input type="text" name="add2"/><br />
            Postcode: <input type="text" name="pcode"/><br />
            Telephone: <input type="text" name="phone"/><br />
            <button id="submit">Register</button>
            </form>

            <div id="ack"></div>
        </fieldset>
    </div>
    </div>
</body>
</html>

PHP文件

代码语言:javascript
复制
<?php
  include('db.php');

  $email = mysql_real_escape_string( $_POST["username"] );
  $pass = mysql_real_escape_string( md5($_POST["pass"]) );
  $firstname = mysql_real_escape_string( $_POST["fname"] );
  $surname = mysql_real_escape_string( $_POST["lname"] );
  $add1 = mysql_real_escape_string( $_POST["add1"] );
  $add2 = mysql_real_escape_string( $_POST["add2"] );
  $pcode = mysql_real_escape_string( $_POST["pcode"] );
  $phone = mysql_real_escape_string( $_POST["phone"] );

  if( empty($email) || empty($pass) )
  {
    echo "Email and Password are Mandatory";
    exit();
  }




$res = mysql_query("SELECT email FROM members WHERE email='$email'");
      $row = mysql_fetch_row($res);


  if( $row > 0 )
    echo "The Email $email has already been taken. Click Forgot Password to Retrieve";

  else
  {
      $sql = "INSERT INTO members (memberid, firstname, surname, address1, address2, postcode, telephone, email, password) VALUES (
                                       '',
                                       '$firstname', 
                                       '$surname', 
                                       '$add1', 
                                       '$add2', 
                                       '$pcode', 
                                       '$phone', 
                                       '$email'
                                       '$pass')";
   if( mysql_query($sql) )
     echo "Registration Successfull";
   else
     echo "An Error Occured Please Try Again";
}

?>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-04 19:23:10

你这里漏掉了一个逗号

代码语言:javascript
复制
                                       '$phone', 
                                       '$email', //<-------------- Here
                                       '$pass')";
票数 2
EN

Stack Overflow用户

发布于 2014-02-04 19:41:07

从$sql = insert into ...中删除memberid --这可能是mysql数据库中的auto_increment类型值。

顺便说一下,您最好使用mysqli或pdo,而不是使用mysql_。对于准备好的语句,您将限制SQL注入的风险。

票数 1
EN

Stack Overflow用户

发布于 2014-02-04 19:35:24

添加以下内容以查找MySQL错误:

代码语言:javascript
复制
else
     echo "An Error Occured Please Try Again";
     echo mysql_errno($res) . mysql_error($res);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21561445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档