在非常基本的查询上MySQL列不匹配错误

时间:2012-03-23 14:49:45

标签: mysql phpmyadmin

所以我收到了这个错误:

Error: Column count doesn't match value count at row 1 

(非常常见,我已经通过谷歌检查了,我的问题是大多数问题都是实际的comlumn不匹配,因为它描述了)

我的位置表有“user”,“latitude”,“longitude”,“posttext”,user和posttext都是varchar,而lat和long都是int。目前,我只是尝试使用user和posttext值插入值。我从我的php中取出了查询,并在phpmyadmin的SQL部分运行它运行正常,所以我不知道为什么我收到错误。
php表单从文本框提供帖子数据,这是php处理代码:

<?php
error_reporting(E_ALL); 

$username = $_POST['user'];
$textToPost = $_POST['textToPost'];
$con = mysql_connect("127.0.0.1","*","*");

if (!$con)
  {
 die('Could not connect: ' . mysql_error());
  }

 mysql_select_db("test");

 $sql= "INSERT INTO location(user, posttext)
 VALUES ('.$username.,.$textToPost.')";

 if (!mysql_query($sql))
  {
   die('Error: ' . mysql_error());
  }
  echo "1 record added";
 mysql_close($con);
 echo $username;
 echo $textToPost;
  ?>

所以我希望这对我来说是一个非常基本的语法错误,但有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

你错过了一些引用:

$sql= "INSERT INTO location(user, posttext)
VALUES ('".$username."','".$textToPost."')";

答案 1 :(得分:1)

查询不应该是这样的吗?

$sql= "INSERT INTO location(user, posttext)
VALUES ('".$username."','".$textToPost."')";

答案 2 :(得分:1)

尝试

 $sql= "INSERT INTO location(user, posttext)
        VALUES ('".$username."','".$textToPost."')";

请记住,在查询中使用之前,必须始终清理用户输入!!
使用准备好的陈述可能会更好......