使用POST方法将数据从表单插入到mysql中

时间:2013-11-30 21:13:14

标签: php html mysql sql

我没有做一段时间的PHP,但我真的没有看到我错过了什么。 我试图将一些数据从FORM插入MYSQL,但它仍然失败。 这是带有FORM的文件:

  <html>
  <head>
  <link type="text/css" rel="stylesheet" href="stylesheet.css"/>
  <title>registrace</title>
  </head>

  <body>
  <H1>  The Best Page! </H1>
  <p>


  "Please registrate"


  <form action="zpracovani.php" method="post">  
          Name <input type="text" size="20" name="Name" value=""><br>
          Surname <input type="text" size="30" name="Surname" value=""><br>
          Username <input type="text" size="30" name="username" value=""><br>
          Password <input type="text" size="10" name="password" value=""><br>
          Retype password <input type="text" size="10" name="password2" value=""><br>
          <input type="image" name="button" value="submit" class="button"     src="button.jpg">

   </form>

   </p>
   </body>
   </html>

正如您所见,我正在发送数据以进入文件“zpracovani.php”。我测试了我是否连接到mysql服务器(它通过),还检查我是否连接到正确的数据库(也没有probs)。

<html>
   <?php
   echo "Wait please";
   $con=mysql_connect ('localhost','root','');

   if (!$con)  
   {
   die ( 'Could not connect: ' . mysql_error());

      }
      mysql_select_db ('registrace') or die("cannot select DB");
      echo @mysql_ping() ? 'true' : 'false';

      $sql="INSERT INTO 'registrace'(Name, surname, username, password).
      VALUES('$_POST[Name]','$_POST[Surname]','$_POST[username]','$_POST[password]')";
      $result=mysql_query($sql);
      if($result){

      echo("<br>Input data is succeed");

      }else{

      echo("<br>Input data is fail");`
      }
      mysql_close($con);
      ?>
      </html> 

下面是我制作的mysql表的重写。

ID          int(11)         
Name        varchar(20) latin1_swedish_ci       
Surname     varchar(30) latin1_swedish_ci       
username    varchar(30) latin1_swedish_ci       
password    varchar(10) latin1_swedish_ci   

但是,我连接到数据库并更正表,它仍然无法将任何人插入数据库。有人可以看看这个并帮帮我吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

删除'registrace'中的引号或使用INSERT INTO 'registrace'中的反引号

示例:

INSERT INTO `registrace`

使用反引号更好。

同时删除以下内容中的点:

$sql="INSERT INTO 'registrace'(Name, surname, username, password).

它应该是:

$sql="INSERT INTO `registrace` (Name, surname, username, password)

重新格式化:

$sql="INSERT INTO `registrace` (Name, surname, username, password)
VALUES 
('{$_POST['Name']}','{$_POST['Surname']}','{$_POST['username']}','{$_POST['password']}')";

或遵循以下惯例:

$unsafe_variable = $_POST["user-input"]
$safe_variable = mysql_real_escape_string($unsafe_variable);

mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");

注意:我还注意到您的数据库和桌子都使用相同的名称。

确保事实确实如此。

你的数据库:

mysql_select_db ('registrace')

和你的桌子?

INSERT INTO `registrace`

另外,最好增加VARCHAR的值,并考虑使用MySQLi_和准备好的语句或PDO。不推荐使用MySQL_个函数。

请阅读以下文章:

答案 1 :(得分:0)

首先:使用mysqli

第二:摆脱mysql ping

第三:更改:

"......'$_POST[xxx]'......"

成:

"......'{$_POST['xxx']}'....."

答案 2 :(得分:0)

谢谢你们现在正在努力。

顺便说一句,mysql ping只是一个检查,看看我是否连接良好,就像我在原帖中写的那样:)

无论如何,这对你来说非常有帮助