我的代码没有向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);
?>
答案 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());