【问题标题】:PHP why doesn't this code echo?PHP 为什么这段代码不回显?
【发布时间】:2013-06-11 15:50:42
【问题描述】:

执行以下代码后,如果我启用了 $q3 删除查询,$i 不会回显。如果我评论它或删除$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;
        }
    }

【问题讨论】:

  • 您的查询是否失败并输出错误?
  • 你启用了 display_errors 吗?
  • 检查代码中的{}s。
  • 我认为您的查询有误。在数据库上单独运行该查询以了解错误。出于这个原因,它是执行 die 语句。

标签: php mysql mysqli echo


【解决方案1】:

它不会回显的原因是因为你的 SQL 中有错误,mysqli_query 在这种情况下返回 false。

SQL 导致错误,因为您不能在直接属于 DELETEWHERE 子句中使用 ORDER BY

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

DELETE FROM room_attributes
WHERE id IN (
  SELECT id FROM room_attributes
  WHERE _current_created_rooms='empty'
  ORDER BY id DESC
  LIMIT 1
)

【讨论】:

  • 这里是答案 [code]$isfound = in_array("empty",$currentrooms0); if($isfound===true){ for($i=0; $i$i-1) {echo 0;}else{echo $i-1;} 中断; } }[/code]
【解决方案2】:

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

if($q3 ===TRUE){
    echo $i-1;
    break;
}else{
    echo "Connection Problem";
}

【讨论】:

  • $isfound = in_array("empty",$currentrooms0); if($isfound===true){ for($i=0; $i
【解决方案3】:

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; 
         } 
    }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 2017-11-25
相关资源
最近更新 更多