我有一个简单的插入页面似乎没有任何错误,但没有显示在db中。我已经阅读了30多个差异帖,并且无法弄清楚出了什么问题。我知道dbcon.php的工作原理是显示页面没有任何问题。
<?php
ob_start();
include('dbcon.php');
if (isset($_POST['submit'])){
$Ph1=preg_replace('/[^0-9]/', '', $_POST["ph1"]);
$Ph2=preg_replace('/[^0-9]/', '', $_POST["ph2"]);
$Name=mysql_real_escape_string($_POST['name']);
$Email=mysql_real_escape_string($_POST['email']);
$Group=$_POST['group'];
mysql_query("insert into reps (ph1,ph2,name,email,group)
values("$Ph1","$Ph2","$Name","$Email","$Group")");
header('location:index.php');
}
ob_flush();
?>
答案 0 :(得分:2)
GROUP
是一个保留的关键字。必须用反引号括起来,
insert into reps (ph1,ph2,name,email,`group`)
另一个问题是使用了围绕值的双引号。
mysql_query("INSERT INTO reps (ph1,ph2,name,email,`group`) VALUES ('$Ph1','$Ph2','$Name','$Email','$Group')");
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。