如果在MYSQL表(PHP)中找不到数据,请编写一些内容


Write something if no data found in MYSQL table (PHP)

我有一个简单的脚本来搜索数据库中的内容。若在表格中找不到任何结果,则应写下"Neni k dispozici"。我的问题是,如果我搜索数据库中没有的东西,它会给我一个空白的结果。所以我试着写条件if(empty($row))。。。但我从来没有得到这个结果,我只是又一次陷入空白。我的第二个想法是,好吧,它可能不是空的。所以我尝试var_dump($row)和print_r,但无论如何都没有结果。空白页。。。但如果我试图搜索数据库中的东西,我会得到很好的var_dump,所以没有什么能阻止这个

我的代码看起来像:

                 try{
                    $sql = "SELECT * FROM axnmrs_calculations WHERE case_id = :case AND country = :country ORDER BY calculation_id DESC LIMIT 1";
                    //$sql = "SELECT * FROM axnmrs_calculations WHERE case_id = :case LIMIT 1";
                    $stmt_calculations = $con->prepare( $sql );
                    $stmt_calculations->bindValue( "case", $this->case, PDO::PARAM_STR );
                    $stmt_calculations->bindValue( "country", $this->country, PDO::PARAM_STR );
                    $stmt_calculations->execute();                   
                    while ($row = $stmt_calculations->fetch()){ 
                    print_r($row);
                    if (empty($row)){
                        echo  "<dt>Údaje ke kalkulaci</dt>";                            
                        echo  "<dd>Neni k dispozici</dd>";} 
                    else{                         
                      $this->calculationid = $row['calculation_id'];
                      echo  "<dt>Cena náhradních dílů</dt>";
                      $spare_parts = floatval($row['spareparts']); // Convert do  FLOAT (kôli number_format funkcii)
                      $spare_parts = number_format($spare_parts, 2, ',', ' ');
                      echo  "<dd>".$spare_parts."</dd>";
                      //echo  "<dd>".$row['spareparts']."</dd>";
                      echo  "<dt>Celkové náklady</dt>";
                      $totalcosts = floatval($row['totalcosts']); // Convert do  FLOAT (kôli number_format funkcii)
                      $totalcosts = number_format($totalcosts, 2, ',', ' ');
                      echo  "<dd>".$totalcosts."</dd>";                          
                      //echo  "<dd>".$row['totalcosts']."</dd>";                           
                      echo  "<dt>Celkový počet hodin práce</dt>";
                      if (empty($row['laborhours'])){
                      echo  "<dd>Neni k dispozici</dd>";} 
                      else                         
                      echo  "<dd>".$row['laborhours']."</dd>";
                      echo  "<dt>Datum vytvoření kalkulace</dt>";
                      if (empty($row['calculationdate'])){
                      echo  "<dd>Neni k dispozici</dd>";} 
                      else                             
                      echo  "<dd>".substr($row['calculationdate'], 0, 10)."</dd>";      // ODSTRANIT 0000
                      echo  "<dt>Lakovací materiál</dt>";
                      if (empty($row['paintmaterial'])){
                      echo  "<dd>Neni k dispozici</dd>";} 
                      else{   
                      $paintmaterial = floatval($row['paintmaterial']); // Convert do  FLOAT (kôli number_format funkcii)
                      $paintmaterial = number_format($paintmaterial, 2, ',', ' ');
                      echo  "<dd>".$paintmaterial."</dd>"; }                           
                      //echo  "<dd>".$row['paintmaterial']."</dd>";
                      echo  "<dt>Měna</dt>";
                      if (empty($row['currency'])){
                      echo  "<dd>Neni k dispozici</dd>";} 
                      else  
                      echo  "<dd>".$row['currency']."</dd>";  
                      }                                                  
                      }
                        }catch(PDOExeption $e){
                        echo $e->getMessage();
                        echo $con->errorInfo();
                        } 

有人能告诉我如何检查数据是否在数据库中,如果没有,我会写一些错误消息吗?

感谢

您可以询问返回的行数,并根据它添加一些错误处理。

if ($statement->execute()) {
    $statement->store_result();
    if ($statement->num_rows >= "1") {
         while ($statement->fetch()) {
         }
    }
}