Mysql语法错误

时间:2012-02-10 02:32:44

标签: php mysql

**守则**

$ah_title = $_POST['ah_title'];
$ah_postin = $_POST['ah_postin'];
$ah_content = $_POST['ah_content'];
date_default_timezone_set('America/Los_Angeles');   
$ah_date = date("m/d/y");
$ah_query = "INSERT INTO '$ah_title' (title,content,date) VALUES ('$ah_title','$ah_content','$ah_date') ";

**错误**

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test' (title,content,date) VALUES ('test','test','02/09/12')' at line 1 

您能帮我理解错误以及解决方法。

4 个答案:

答案 0 :(得分:2)

您插入表'测试'。你有一张名为test的表吗? INSERT INTO $ ah_title?你确定那是准确的吗?

答案 1 :(得分:1)

不要将表名包装在引号

$ah_query = "INSERT INTO $ah_title (title,content,date) VALUES ('$ah_title','$ah_content','$ah_date') ";

请防止SQL注入

$ah_title = mysql_real_escape_string($_POST['ah_title'];

您使用的数据库库并不明显,因此转发的确切方法未知。

答案 2 :(得分:1)

不要使用单引号来转义实体名称。使用反引号。

$ah_query = "INSERT INTO `$ah_title` (`title`,`content`,`date`) VALUES ('$ah_title','$ah_content','$ah_date') ";

答案 3 :(得分:0)

DATE是MySQL中的保留字。你需要在它周围使用反引号,以及在表名周围使用反引号而不是单引号