将数据插入数据库时​​出现问题

时间:2012-03-11 07:44:40

标签: php mysql

我的代码没有向mysql插入任何记录。怎么了?我真的很困惑。 我设计了一个表单,我想从文本框中读取数据并发送到数据库。

<?php
if(isset($_post["tfname"]))
    {
        $id=$_post["tfid"];
        $name=$_post["tfname"];
        $family=$_post["tffamily"];
        $mark=$_post["tfmark"];
        $tel=$_post["tftell"];

$link=mysql_connect("localhost","root","");
if (!$link)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("university",$link);
$insert="insert into student (sid,sname,sfamily,smark,stel) values ($id,'$name','$family',$mark,$tel)";

mysql_query($insert,$link);
    }
mysql_close($link);
?>

4 个答案:

答案 0 :(得分:2)

您最好在查询中的值后面加上id,mark和tel的引号。另外,正如@Another Code所说,您必须在代码中使用$ _POST而不是$ _post。试试这个并告诉我结果:

<?php
if(isset($_POST["tfname"])) {
   $id=$_POST["tfid"];
   $name=$_POST["tfname"];
   $family=$_POST["tffamily"];
   $mark=$_POST["tfmark"];
   $tel=$_POST["tftell"];

   $link=mysql_connect("localhost","root","");
   if (!$link) {
      die('Could not connect: ' . mysql_error());
   } else {
      mysql_select_db("university",$link);
      $insert="insert into student 
               (sid,sname,sfamily,smark,stel) values 
               ('$id','$name','$family','$mark','$tel')";
      mysql_query($insert,$link) or die (mysql_error());
      mysql_close($link);
   }
} else {
   die('tfname did not send');
}
?>

使用mysql_query($insert,$link) or die (mysql_error());来获取错误消息。

答案 1 :(得分:0)

使用你提供的代码几乎可以做任何事情 - 做一些测试......你有没有回应确认你甚至在POST中得到了tfname?它选择数据库好吗?字段$ id,$ mark和$ tel是否也需要单引号?我们需要更多地了解代码无法提供更多帮助的地方,但该代码段似乎应该正在运行,在此期间,请使用一些echo来缩小您的问题范围!

答案 2 :(得分:0)

尝试在sql查询浏览器中运行生成的sql查询。通过“echo $ insert”语句获取查询。

答案 3 :(得分:-1)

将$ insert更改为:

$insert="insert into student (sid,sname,sfamily,smark,stel) values ($id,'".$name."','".$family."','".$mark."','".$tel."')";

进一步设置ini_set('display_errors',1),以便php根据需要显示错误消息。

最后,每当做一个mysql查询时,尝试在查询中使用or die(mysql_error()),这样如果有些错误的mysql或语法,我们就知道了。

$q = mysql_query($query) or die(mysql_error());