我就贴上关键代码
foreach ($logData as $key => $data) {
$kItem[] = $key;//这里变量后面的[]是什么
$dItem[] = $data;
$cshu++;
if($cshu == 8) $dItem[] = "i";
}
$field = implode(',', $kItem);
$values = "'" . implode("','", $dItem) . "'";
$this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");循环读出数组 循环到第八个数据的时候 修改 $dItem[]的值为i 但是在写入数据的时候 这个I却是多出的
SQL语句执行错误:INSERT INTO emlog_blog (title,alias,content,excerpt,author,sortid,date,top,allow_re,allow_tb,hide,password) VALUES ('dsa','','das','','39','-1','1380936471','n','i','y','y','n','')
Column count doesn't match value count at row 1报错的原因是因为多出了一个I值 我想把I前面的N替换掉的 但是不知道为什么他就是不能替换值php
foreach ($logData as $key => $data) {
$kItem[] = $key;//这里变量后面的[]是什么
$dItem[] = $data;
$cshu++;
if($cshu == 8) $dItem[] = "i";
}
$field = implode(',', $kItem);
$values = "'" . implode("','", $dItem) . "'";
$this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");循环读出数组 循环到第八个数据的时候 修改 $dItem[]的值为i 但是在写入数据的时候 这个I却是多出的
SQL语句执行错误:INSERT INTO emlog_blog (title,alias,content,excerpt,author,sortid,date,top,allow_re,allow_tb,hide,password) VALUES ('dsa','','das','','39','-1','1380936471','n','i','y','y','n','')
Column count doesn't match value count at row 1报错的原因是因为多出了一个I值 我想把I前面的N替换掉的 但是不知道为什么他就是不能替换值php
请问 单$dItem[] = $data; 循环到 第八次的时候 把
$dItem[] = $data; 的值 替换为 i 要怎么写代码
与 array_pish($kItem, $key) 等效你 if($cshu == 8) $dItem[] = "i"; 后,显然 $cshu 要比 $kItem 至少要多一个元素
应写作
foreach ($logData as $key => $data) {
$kItem[] = $key;//这里变量后面的[]是什么
$dItem[] = $cshu == 7 ? "i" : $data;
$cshu++;
}
很容易懂的。http://blog.csdn.net/timecolor/article/details/8982615