>  기사  >  백엔드 개발  >  PHP 및 MySQL 코드에서 \'열 개수가 행 1의 값 개수와 일치하지 않습니다\' 오류가 발생하는 이유는 무엇입니까?

PHP 및 MySQL 코드에서 \'열 개수가 행 1의 값 개수와 일치하지 않습니다\' 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-27 11:23:01835검색

Why am I getting the

PHP 및 MySQL에서 "열 개수가 행 1의 값 개수와 일치하지 않습니다" 오류 수정

PHP를 사용하는 MySQL 데이터베이스에서는 다음 오류가 발생할 수 있습니다.

Column count doesn't match value count at row 1

이 오류는 INSERT 쿼리에 제공된 값 수가 대상 테이블에 정의된 열 수와 일치하지 않을 때 발생합니다.

원인 이해

예제 코드에서는 INSERT 쿼리에 9개의 열을 지정했습니다.

INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username)

그러나 8개의 값만 제공하고 있습니다. :

sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
    mysql_real_escape_string($name),
    mysql_real_escape_string($description),
    mysql_real_escape_string($shortDescription),
    mysql_real_escape_string($ingredients),
    //mysql_real_escape_string($image),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

결과적으로 MySQL은 지정된 열에 제공된 값의 수를 일치시킬 수 없어 오류가 발생합니다.

해결책: 값 개수가 열과 일치하는지 확인 개수

문제를 해결하려면 쿼리의 값 개수가 대상 테이블의 열 개수와 일치하는지 확인해야 합니다. 이 경우 메소드 값 제공을 놓쳤습니다.

누락된 값을 포함하도록 코드를 수정하세요.

$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
    mysql_real_escape_string($name),
    mysql_real_escape_string($description),
    mysql_real_escape_string($shortDescription),
    mysql_real_escape_string($ingredients),
    mysql_real_escape_string($method),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

올바른 개수의 값을 제공하면 성공적으로 수행할 수 있습니다. 열 개수 불일치 오류가 발생하지 않고 MySQL 데이터베이스에 데이터를 삽입합니다.

위 내용은 PHP 및 MySQL 코드에서 \'열 개수가 행 1의 값 개수와 일치하지 않습니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.