数据没有从表单插入数据库,我做错了什么?

时间:2014-01-16 23:38:58

标签: php mysql

我有以下2个文件和一个在后台运行的数据库。我什么时候提交表格。数据未插入数据库。它成功连接到我的数据库,但没有插入:

update.html

 <html> 
 <head><title>Test Page</title></head> 
 <body> 
 <h2>Data Collection</h2><p> 
 <form action="update.php" method="post"> 
 <table> 
 <tr><td>id</td><td><input type="text" name="id" /></td></tr> 
 <tr><td>title</td><td><input type="text" name="title" /></td></tr> 
 <tr><td>name</td><td><input type="text" name="name" /></td></tr> 
 <tr><td>hello</td><td><input type="text" name="hello" /></td></tr> 
 <tr><td colspan="2" align="center"><input type="submit" /></td></tr> 
 </table> 
 </form> 
 </body> 
 </html>

update.php

 <?php

    $GLOBALS['title'];
    $GLOBALS['id'];
    $GLOBALS['name']; 
    $GLOBALS['hello'];

    $hostname="localhost:3036";
    $username="root";
    $password="";

    $con = mysql_connect($hostname, $username, $password) 
      or die("Unable to connect to MySQL");
    echo "Connected to MySQL<br>";

    // Check connection
    if (mysql_error())
      {
      echo "Failed to connect to MySQL: " . mysql_error();
      }

    mysql_select_db('website');


    $sql="INSERT INTO articles (id, title, name, hello)
        VALUES('$id','$title','$name','$hello')";

    mysql_close($con);

    echo "test";

感谢所有帮助。

3 个答案:

答案 0 :(得分:1)

您根本没有执行查询,并且在评论中正确说明,您没有正确设置变量;

更改您的代码以匹配:

$title = $_POST['title'];
$id = $_POST['id'];
$name = $_POST['name']; 
$hello = $_POST['hello'];

$hostname="localhost:3036";
$username="root";
$password="";

$con = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

// Check connection
if (mysql_error())
  {
  echo "Failed to connect to MySQL: " . mysql_error();
  }

mysql_select_db('website');

$sql="INSERT INTO articles (id, title, name, hello)
    VALUES('$id','$title','$name','$hello')";

mysql_query ( $sql, $con);

mysql_close($con);

答案 1 :(得分:0)

请尝试以下代码: 注意:我只是忽略你不推荐使用的msqyl函数

<?php

$hostname="localhost:3036";
$username="root";
$password="";

$title = $_POST['title'];
$id = $_POST['id'];
$name = $_POST['name']; 
$hello = $_POST['hello'];

$con = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

// Check connection
if (mysql_error())
  {
  echo "Failed to connect to MySQL: " . mysql_error();
  }

mysql_select_db('website');


$sql=mysql_query("INSERT INTO articles (id, title, name, hello)
    VALUES('$id','$title','$name','$hello')") or die(mysql_error());

mysql_close($con);

echo "test";

答案 2 :(得分:0)

首先,您没有定义要插入的变量。 '的$ id', '$标题', '$名', '$你好'。
定义插入前一个,当接受$ _POST时,使用

else {$id'= $_POST['id'];}

二。更重要的是,不要使用这样的代码,顺便说一句旧代,弃用代码和非常不健康代码。它很容易SQL INJECTION
而是使用PDO,并清理用户提交的值。
另外,请避免使用$GLOBALS,相同,旧,已弃用,不安全。

请参阅PHP sanitize,其中介绍了如何清理用户提交的数据。检查一下:

 $id=filter_var($_POST['id'], FILTER_SANITIZE_STRING);