Php – PDO Uncaught exception – Insert value list does not match column list

exceptionpdoPHP

I get this Exception

Uncaught exception 'PDOException' with message 'SQLSTATE[21S01]: 
Insert value list does not match column list: 1136 Column count doesn't match 
value count at row 1

With this code:

$stmt = $conn->prepare('INSERT INTO project VALUES(:category, :title, :name)');
      $stmt->execute(array(
          ':category' => $_POST['category'],
          ':title' => $_POST['title'],
          ':name' => $_POST['name']
));

What does the error message mean?

Best Answer

In your query, specify the columns that you want to populate, for example:

$stmt = $conn->prepare('INSERT INTO project (category, title, name) VALUES(:category, :title, :name)');

If you don't specify the columns in that way, you have to include a value for all columns in the table, that's why you're getting the error - because there are other columns in the table and you haven't explicitly specified a value for them all.

It is better to specify the columns because if any columns are added or the order is changed in future, your query will break unless the column list is specified.

Related Topic