我的代码用于向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
那么我该如何调试呢。
答案 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
如果您注释掉列并尝试构建架构,则会收到错误。