我遇到了將子數組數值插入到mysql表中的問題。我收到以下錯誤。列數與第1行的值計數不匹配 - PHP子數組
列數並不在行1
不知道我做錯了匹配值計數。
這是我的表
CREATE TABLE IF NOT EXISTS `tbl_tourn_results` (
`fld_tr` char(10) NOT NULL,
`fld_id_tr` char(5) NOT NULL,
`fld_score` smallint(6) DEFAULT NULL,
`fld_hole` smallint(6) DEFAULT NULL,
`fld_T_Time` varchar(10) DEFAULT NULL,
PRIMARY KEY (`fld_tourn_id_tr`,`fld_gPlayer_id_tr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
這是一個陣列的樣品。
Array
(
[0] => Array
(
[fld_tr] => HONDA
[fld_id_tr] => RoMcI
[fld_score] => -12
[fldr_hole] => F
)
[1] => Array
(
[fld_tr] => HONDA
[fld_id_tr] => TiWoo
[fld_score] => -10
[fld_hole] => F
)
[2] => Array
(
[fld_tr] => HONDA
[fld_id_tr] => TiWoo
[fld_score] => -10
[fld_hole] => F
)
[3] => Array
(
[fld_tr] => HONDA
[fld_id_tr] => TiWoo
[fld_score] => -10
[fld_hole] => F
)
)
這是我用來插入的代碼。
<?php
//Each 'sub-array' will become a row in the table
foreach($result as $row){
$i = 0;
//3 (not 4!) is the highest key in each sub-array
while($i <= 3){
//MySQL likes each value wrapped in apostrophes
$row[$i] = '\'' . $row[$i] . '\'';
$i++;
}
//Convert the sub-array into a comma-separated string
$row = implode(",", $row);
//MySQL query inserts the sub-array into a new row in the table
mysql_query("INSERT INTO tbl_results (fld_tr, fld_id_tr, fld_score, fld_hole) VALUES({$row}) ") or die(mysql_error());
}
?>
我收到以下錯誤消息。 列數並不在行1
「調試是第一次編寫代碼的兩倍,因此,如果您儘可能巧妙地編寫代碼,則根據定義,您的調試不夠聰明。」 -Brian Kernighan – 2012-03-07 03:56:29
http://htmlfixit.com/cgi-tutes/tutorial_MySQL_Error_Invalid_Query_Column_Count_Does_Not_Match_Value_Count.php – Ben 2012-03-07 03:58:21
'$ result'從哪裏來?如果來自另一個查詢,請考慮使用['INSERT ... SELECT'語法](http://dev.mysql.com/doc/refman/5.5/en/insert-select.html)或甚至連接。 – Gumbo 2012-03-07 06:54:58