【发布时间】:2015-11-14 16:00:26
【问题描述】:
我在 HTML 文档中有一个简单的 PHP 脚本。扩展名是.php,但我不知道为什么它没有从表单输入向表中插入数据,我的表结构如下:
UserID : int, primary key, auto increment
Firstname : varchar
Lastname : varchar
Username : varchar
Password : varchar
DateRegistered : timestamp default - current_timestamp
DateUpdated : timestamp, attributes - on update current_timestamp default 0000-00-00 00:00:00
我的数据库连接凭据正确。请帮忙。
<!Doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Registration Page</title>
</head>
<body>
<form id="register_form" method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<p>
<label for="first_name">First Name</label>
<input type="text" name="first_name">
</p>
<p>
<label for="last_name">Surname</label>
<input type="text" name="last_name">
</p>
<p>
<label for="username">Username</label>
<input type="text" name="username">
</p>
<p>
<label for="password">Password</label>
<input type="text" name="password">
</p>
<p>
<input type="submit" name="registration_submit" value="Register">
</p>
</form>
</body>
</html>
<?php
if (isset($_POST['registration_submit']))
{
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$uname = $_POST['username'];
$pword = $_POST['password'];
if (empty($fname) || empty($lname) || empty($uname) || empty($pword))
{
echo "Required fields missing";
}
}
else if (!empty($_POST['first_name']) && !empty($_POST['last_name']) && !empty($_POST['username'])
&& !empty($_POST['password']) )
{
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$uname = $_POST['username'];
$pword = $_POST['password'];
echo "ElseIF portion reached";
$con = new mysqli_connect("localhost", "root", "", "website2");
$query = "insert into users values(NULL,'$fname','$lname','$uname','$pword',NULL, NULL)";
$result = $con->query($query);
if (!$result) die("something went wrong ". $con->error);
$result->close();
$con->close();
echo "<br /> User Registered";
}
?>
【问题讨论】:
-
您的插入语句没有列。需要
insert into table (`col1`,`col2`) values ('val1','val2') -
我现在正在阅读这本非常好的 PHP 书籍,其中的语法如下 $query = "INSERT INTO cats VALUES(NULL, 'Lion', 'Leo', 4)";他的查询中没有列名
-
有些人太急于提交答案。并在此过程中失败。
-
这个
if (!$result) die("something went wrong ". $con->error);应该给你一个错误;这是什么? -
这里
values('','$fname','$lname','$uname','$pword','', '')";应该让它进入高速档。但是...如果您的值包含像O'Neil这样的撇号,那会让您失望。转义您的数据。