php代码没有将值插入数据库

时间:2014-12-23 18:44:26

标签: php database

我正在尝试创建一个简单的登录程序,但数据不会转到phpMyAdmin。

我正在使用wamp服务器用于phpmyadmin&将数据库命名为' firstdatabase'和表名为' reg'。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<h1 align="center">Registration</h1>
<form action="" method="get">
<table width="261" border="1" align="center">
  <tr>
        <td width="85">ID : </td>
    <td width="160"><label>
      <input name="id" type="text" id="id" />
    </label></td>
  </tr>
  <tr>
    <td>Password :</td>
    <td><label>
      <input name="pass" type="password" id="pass" />
    </label></td>
      </tr>
  <tr>
    <td>Email ID : </td>
    <td><label>
   <input name="email" type="text" id="email" />
  </label></td>
  </tr>
  <tr>
<td colspan="2"><div align="center">
  <input type="submit" name="Submit" value="Submit" />
</div></td>
</tr>
</table>
<label></label>
</form>
</body>
</html>
<?php
if ( $_POST )
{
$con=mysqli_connect('localhost','root','','firstdatabase');
if (!$con)
{
echo"Connected to server...";
}
$id=$_POST['user_id'];
$pass=$_POST['user_name'];
$email=$_POST['user_email'];

$query = "
  INSERT INTO `firstdatabase`.`reg` (`user_id`, `user_pass`, 'user_email') VALUES ('$id', '$pass', '$email')";

  mysql_query($query);

  echo "<h2>Thank you for your registering!</h2>";

  mysql_close($con);
}

?>

1 个答案:

答案 0 :(得分:2)

你拿错了字段,你拿来的字段不存在:

$id=$_POST['id'];
$pass=$_POST['pass'];
$email=$_POST['email'];

你正在与mysqli连接然后尝试运行一个mysql查询,这也不会起作用。

更改此行:

mysql_query($query);

mysqli_query($con,$query);

您的插入查询也包含错误:

INSERT INTO `firstdatabase`.`reg` (`user_id`, `user_pass`, 'user_email') // < 'user_email'

应该是

INSERT INTO `firstdatabase`.`reg` (`user_id`, `user_pass`, `user_email`) // backticks

作为旁注,因为它不会中断你的程序,但仍然是错误的

$con=mysqli_connect('localhost','root','','firstdatabase');
if (!$con)
{
echo"Connected to server...";
}

没有意义。 !变量前面的$con会检查is not


SIDENOTE 2:

启用错误报告,然后会显示您要求的所有错误:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

并为您的查询启用错误报告!