当我处理下面的代码时,我总是遇到这样的错误:“字段列表中的未知列'数组'”。有人可以帮我这个吗?我是php的新手,所以请耐心等待。提前谢谢你。
//updating conversation members
function update_cmembers($nc_id,$ids){
$r = "DELETE FROM nc_members WHERE nc_id = '$nc_id' ";
mysql_query($r) or die(mysql_error());
$values = array("($nc_id,{$_SESSION['id']},UNIX_TIMESTAMP(),0,1)");
foreach($ids as $id){
$id=(int)$id;
$values[] = "($nc_id,$id,0,0,0)";
}
$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES " . implode(",",$values);
mysql_query($sql) or die(mysql_error());
}
答案 0 :(得分:1)
抛出错误是因为您将关联数组传递给内部函数。因此,implode函数将它们分配给多个数组并将它们作为值传递。 请在$ values数组和sql语句之间删除此代码。
foreach($ids as $id){
$id=(int)$id;
$values[] = "($nc_id,$id,0,0,0)";
}
由于此代码将$ value数组转换为关联数组。
答案 1 :(得分:0)
更改$values = array("($nc_id,{$_SESSION['id']},UNIX_TIMESTAMP(),0,1)");
对此:
`$ values = array($ nc_id,$ _ SESSION ['id'],UNIX_TIMESTAMP(),0,1));
并更改
$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES " . implode(",",$values);
致:
$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES (" . implode(',',$values).")"