致命错误:未捕获mysqli_sql_exception:查询/预准备语句SELECT * FROM Product中没有使用索引

时间:2016-04-07 15:40:23

标签: php mysql mysqli

我查看了有关此问题的帖子,但是帖子只是建议使用 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)而不是 error_reporting(E_ALL)。我做了这些更改确实删除了错误消息,但现在我的网页上没有显示任何内容,它只是一个空白的白页,即使它上面有几个表单。所以我再次开始使用 error_reporting(E_ALL)

我想知道这个错误是否还有其他原因。这是一个导致此问题的简单select语句,php文件由4个表单组成,并且在它之前的重复键语句上有一个插入。

   $prod_sel = $dbc->query("SELECT * FROM Product");
        $prod_sel->data_seek(0);
        while ($output = $prod_sel->fetch_assoc()) {
            $prod_run .= $output['Product_Name'] . '<br>';
            $_SESSION['Product_Name'] = $output['Product_Name'];
        }
       //session_start does not work here
        print "Restaurant is :" . $_SESSION['Product_Name'];
        $prod_sel->free();
        $prod_sel->close();

2 个答案:

答案 0 :(得分:0)

您的产品表没有索引列,您应该修复它以获得更好的性能 您可以通过添加此代码

始终禁用此mysqli错误
mysqli_report(MYSQLI_REPORT_INDEX);

您可以找到here有关启用/禁用内部报告功能的完整列表 我建议你阅读这篇关于PHP & MYSQL Communication

的好文章

答案 1 :(得分:-1)

我认为你有两个问题。

  1. 你没有任何例外捕捉mecahinsm
  2. 您的产品表没有任何主要列
  3. 尝试修复您的Product表结构,使某些列自动增加或创建一些已存在的主列