-2

执行以下代码后,如果我启用了删除查询,$i则不会回显。$q3如果我评论它或删除它$q3,那么一切都很好。

我怎样才能让它工作?

$isfound = in_array("empty",$currentrooms0);
if($isfound===true){
    for($i=0; $i<count($currentrooms0);$i++){
        if($currentrooms0[$i]=="empty"){
            $q3=mysqli_query($conn0,"delete from room_attributes where _current_created_rooms='empty' order by id desc limit 1")or die(mysqli_error($conn0));    
            echo $i-1;
            break;
        }
    }
4

3 回答 3

0

它不会回显的原因是您的 SQL 中存在错误并mysqli_query在这种情况下返回 false。

SQL 会导致错误,因为您不能在直接属于ORDER BY某个子句的子句中使用WHEREDELETE

如果您要删除最顶层的属性,那么您可能需要考虑使用此 sql,并且您的代码应该可以工作。

DELETE FROM room_attributes
WHERE id IN (
  SELECT id FROM room_attributes
  WHERE _current_created_rooms='empty'
  ORDER BY id DESC
  LIMIT 1
)
于 2013-06-11T16:04:00.297 回答
0

我认为您对 mysqli_connect 有问题,请尝试执行以下操作..

if($q3 ===TRUE){
    echo $i-1;
    break;
}else{
    echo "Connection Problem";
}
于 2013-06-11T16:18:35.077 回答
-2

OP写道:

这是答案:

$isfound = in_array("empty",$currentrooms0); 
if($isfound===true){ 
    for($i=0; $i<count($currentrooms0);$i++){ 
        if($currentrooms0[$i]=="empty"){ 
            $q3=mysqli_query($conn0,"delete from room_attributes where _current_created_rooms='empty' order by id desc limit 1") or die(mysqli_error($conn0)); 
            if(i>$i-1) {echo 0;}else{echo $i-1;} 
            break; 
         } 
    }
于 2015-07-10T15:29:07.117 回答