Php 致命错误:未捕获mysqli\u sql\u异常:查询/准备语句SELECT*FROM Product中未使用索引
我看过我们关于这个问题的帖子,但是,帖子只是建议使用mysqli_报告(mysqli_报告错误| mysqli_报告严格)而不是错误报告(E_ALL)。我做了这些更改,确实删除了错误消息,但现在我的网页上没有显示任何内容,它只是一个空白的白色页面,尽管上面有一些表单。因此,我开始再次使用错误报告(E\u ALL) 我想知道这个错误是否还有其他原因。导致这个问题的是一个简单的select语句,php文件由4个表单组成,在它前面有一个insert on duplicate key语句Php 致命错误:未捕获mysqli\u sql\u异常:查询/准备语句SELECT*FROM Product中未使用索引,php,mysql,mysqli,Php,Mysql,Mysqli,我看过我们关于这个问题的帖子,但是,帖子只是建议使用mysqli_报告(mysqli_报告错误| mysqli_报告严格)而不是错误报告(E_ALL)。我做了这些更改,确实删除了错误消息,但现在我的网页上没有显示任何内容,它只是一个空白的白色页面,尽管上面有一些表单。因此,我开始再次使用错误报告(E\u ALL) 我想知道这个错误是否还有其他原因。导致这个问题的是一个简单的select语句,php文件由4个表单组成,在它前面有一个insert on duplicate key语句 $pro
$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();
$prod_sel=$dbc->query(“从产品中选择*);
$prod\u sel->data\u seek(0);
而($output=$prod\u sel->fetch\u assoc()){
$prod_run.=$output['Product_Name'].
;
$\会话['Product\u Name']=$output['Product\u Name'];
}
//会话\u开始在此处不起作用
打印“餐厅是:”$_会话[‘产品名称’];
$prod_sel->free();
$prod_sel->close();
我想你有两个问题
尝试修复产品表结构使某些列自动递增或使某些列成为已存在的主列您的产品表没有列索引,您应该修复它以获得更好的性能
只要添加以下代码,就可以始终禁用此mysqli错误
mysqli_report(MYSQLI_REPORT_INDEX);
您可以找到关于启用/禁用内部报告功能的完整列表我建议您阅读这篇关于的好文章,谢谢您的输入,但我的产品表有一个主键,它是自动递增的,不需要捕捉机制here@YourCommonSense非常奇怪,似乎有些异常需要成为致命的错误,因为它们没有被捕获,我学到了另一件事:)这就是为什么我对我的产品表有一个主键、一个索引键和两个唯一键感到困惑。禁用错误,会使我的页面上的所有内容消失。文章非常有用谢谢你谁说你必须将一个更改为另一个?有什么理由禁止一条而支持另一条吗?@YourCommonSense邮报说,错误报告(E_ALL)会导致select语句出现问题,而这些语句不需要索引。它接着说,mysqli_report(mysqli_report_ERROR | mysqli_report_STRICT)解决了这个错误。mysqli_report与select语句完全无关,也不会导致类似的错误。你应该把它放回你的代码里