代码之家  ›  专栏  ›  技术社区  ›  Mohammad

php web应用程序总是显示错误消息[重复]

  •  1
  • Mohammad  · 技术社区  · 8 年前

    我正在使用wamp和mysql数据库开发电子商务系统。我想显示数据库中记录(产品)的列表。但问题是当我在 localhost ,它正在抛出此错误消息 (“错误:sqlcat”); 在里面 category.php 文件我想可能是,网页加载时连接断开了 本地服务器 是的。我的 connection.php 文件和 类别.php 文件存在两个不同的文件夹…

    这是我的 connection.php连接 文件。这是这个文件的目录。 C:\wamp64\www\onlineordering\db

    <?php
    
    $servername = "localhost";
    $username = "root";
    $password = "";
    $db = "ecom1";
    
    // Create connection
    $con = mysqli_connect($servername, $username, $password,$db);
    
    // Check connection
    if (!$con) {
        die("Connection failed: " . mysqli_connect_error());
    }
    
    
    ?>
    

    这是 类别.php 文件。这是这个文件的目录。 C:\wamp64\www\onlineordering\include

      <div class="sidebar_box"><span class="bottom"></span>
                        <h3>Categories</h3>   
                        <div class="content"> 
                            <ul class="sidebar_list">
                            <?php
    
    
    
                               require_once('../onlineordering/db/connection.php') ;
    
      $sqlCat= "select * from category where recordstatus='' order by sequence_order Asc";
                                                $exeCat = mysqli_query($con,$sqlCat) or die ("Error in:sqlCat");
                            $counCat= mysqli_num_rows($exeCat);
    
                            if($counCat>0)
                            { 
    
                               $classCat=1;
                               while($resCat= mysqli_fetch_array($exeCat))
                               {
                                 $categoryname= $resCat["categoryname"];
                                 $auto_number= $resCat["auto_number"];
    
                                ?>
                                <form method="post" style="margin:0px;padding:0px;" action="productcategory.php" id="frmdetailcat<?php echo $classCat;?>">
                                  <input type="hidden" name="category" value="<?php echo $categoryname?>">
                                  <input type="hidden" name="categoryid" value="<?php echo $auto_number?>">
                                </form>
    
                                <?php
    
                                  if($classCat==1)
                                  {
                                  ?>
                                  <li class="first"><a  style="cursor:pointer;" onclick="subform('frmdetailcat<?php echo $classCat;?>')" ><?php echo $categoryname;?></a></li>
                            <?php
                                  }else
                                  if($classCat==$counCat)
                                  {
                                  ?>
                                  <li class="last"><a  style="cursor:pointer;" onclick="subform('frmdetailcat<?php echo $classCat;?>')" >
                                  <?php echo $categoryname;?></a></li>
                            <?php     
                                  }else
                                  {
                                  ?>
                            <li><a  style="cursor:pointer;" onclick="subform('frmdetailcat<?php echo $classCat;?>')" >
                                  <?php echo $categoryname;?></a></li>
                            <?php
                                  }
                                  $classCat++;
                               }
                              }else
    
                              {
                              ?>
                               <li class="first"><a href="#">No Category is avaliable</a></li>
    
                              <?php
                              }
                            ?>
    
                            </ul>
                        </div>
                    </div>
    

    这是我运行应用程序时的屏幕截图。 或die(“error in:sqlcat”); //始终显示此消息。 enter image description here 是的。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Saral    7 年前

    如果你知道是什么导致 mysqli_query() 要死而不是抛出自定义错误消息,请执行以下操作:

    $exeCat = @mysqli_query($con, $sqlCat);
    if($exeCat){ //It worked!
        //Your code
    }else{ // It didn't work
        // Message for you (for debugging purposes but never show this message to public)
        echo '<p>' . mysqli_error($con) . '</p>';       
     }
    

    你为什么用这些星号?

      $exeCat = mysqli_query($con,$sqlCat) **or die ("Error in:sqlCat");**//Always display this message 
    

    去掉星号:

       $exeCat = mysqli_query($con,$sqlCat) or die ("Error in:sqlCat");//Always display this message 
    

    以及 mysqli_num_rows() 只有一个论点,所以这一行

    $counCat= mysqli_num_rows($con,$exeCat);
    

    也应该是

    $counCat= mysqli_num_rows($exeCat);
    

    正斜杠作为目录分隔符有什么问题?