php mysql插入不工作db连接正常工作

时间:2013-02-08 02:44:00

标签: php mysql sql insert

我有一个简单的插入页面似乎没有任何错误,但没有显示在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();
?>

1 个答案:

答案 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,您可以摆脱在值周围使用单引号。