下面是我的Html和php代码,它们都位于单独的文件中,用于我的insert查询--它试图插入注册详细信息,但始终失败,这是我出错的任何原因。我试过使用不同类型的语音标记,但它仍然不起作用,我的教科书展示了这种方法。数据库可以登录用户并检查用户是否存在,但不能插入数据。谢谢。
<?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文件
<?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";
}?>
发布于 2014-02-04 19:23:10
你这里漏掉了一个逗号
'$phone',
'$email', //<-------------- Here
'$pass')";发布于 2014-02-04 19:41:07
从$sql = insert into ...中删除memberid --这可能是mysql数据库中的auto_increment类型值。
顺便说一下,您最好使用mysqli或pdo,而不是使用mysql_。对于准备好的语句,您将限制SQL注入的风险。
发布于 2014-02-04 19:35:24
添加以下内容以查找MySQL错误:
else
echo "An Error Occured Please Try Again";
echo mysql_errno($res) . mysql_error($res);https://stackoverflow.com/questions/21561445
复制相似问题