我的php和mysql程序有什么问题吗?

时间:2015-01-18 05:12:48

标签: php mysql

我的代码用于向mysql添加一些数据。表的名称是博客。数据库包含四个部分。它们是id | title | content | hits。 这是我的代码。

<?php   
include("connect.php");  
    if(!empty($_POST['submit'])){  
    $title = $_POST['title'];  
    $content = $_POST['content'];  
    $sql = "INSERT INTO `blog` VALUES(NULL,$title,$content,now())";  
    mysql_query($sql); 
    $er = mysql_error();
    echo"$er"; 
}  

这是错误信息:

Column count doesn't match value count at row 1 

那么我该如何调试呢。

2 个答案:

答案 0 :(得分:0)

您需要引用字符串值。

$sql = "INSERT INTO `blog` VALUES(NULL, '$title', '$content', now())";

甚至更好:

$sql = "INSERT INTO `blog` VALUES(NULL, '".mysql_real_escape_string($title)."', '".mysql_real_escape_string($content)."', now())";

...以逃避值并避免SQL错误或注入

此外,请勿使用旧的mysql_功能。转而使用mysqli甚至更好PDO,并使用准备好的查询。

答案 1 :(得分:0)

我发现当您未插入要插入的列时,通常会发生以下错误。

Schema Creation Failed: Column count doesn't match value count at row 1: 

尝试明确指定列。

$sql = "INSERT INTO `blog` 
            (id  ,    title,    content,  hits) 
VALUES      (NULL, '$title', '$content', Now()) ";

我的意思是工作演示 - http://www.sqlfiddle.com/#!2/81fe7

如果您注释掉列并尝试构建架构,则会收到错误。