我的代码用于向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
那么我该如何调试它。
我发现当要插入的列未指定时,经常发生以下错误。
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
如果注释掉列并尝试构建架构,则会出现错误。
您需要引用字符串值。
$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
,并使用准备好的查询。