Ошибка несоответствия столбца MySQL на очень простом запросе - PullRequest
0 голосов
/ 23 марта 2012

Итак, я получаю эту ошибку:

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

(Очень часто, и я проверил через гугл, и моя проблема в том, что большинство проблем - это фактические несоответствия между столбцами, как это описано)

Моя таблица местоположений имеет "user", "latitude", "longitude", "posttext", user и posttext - оба varchar, а lat и long - int. В настоящее время я просто пытаюсь вставить значения с пользовательскими и посттекстовыми значениями. Я взял запрос из моего php и запустил его в SQL-части phpmyadmin, и он работает нормально, поэтому я не уверен, почему я получаю ошибку.
Форма 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 ]

2 голосов
/ 23 марта 2012

Вам не хватает некоторых цитат:

$sql= "INSERT INTO location(user, posttext)
VALUES ('".$username."','".$textToPost."')";
1 голос
/ 23 марта 2012

Попробуйте с

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

Помните, что вы ДОЛЖНЫ всегда очищать пользовательский ввод перед использованием его в запросе !!
Может быть лучше использовать подготовленные заявления ...

1 голос
/ 23 марта 2012

Разве запрос не должен быть таким?

$sql= "INSERT INTO location(user, posttext)
VALUES ('".$username."','".$textToPost."')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...