Php 无法从mysql数据库检索数据
我一直在学习教科书中的一些php mysql教程。我应该能够从“books”数据库中检索一些数据,例如,如果我选择author作为searchtype,Michael作为searchterm,我应该会得到一些结果,因为数据库中有作者的名字。但是,在我从表格中提交数据后,我没有得到任何结果。它只显示以下内容:Php 无法从mysql数据库检索数据,php,html,mysql,Php,Html,Mysql,我一直在学习教科书中的一些php mysql教程。我应该能够从“books”数据库中检索一些数据,例如,如果我选择author作为searchtype,Michael作为searchterm,我应该会得到一些结果,因为数据库中有作者的名字。但是,在我从表格中提交数据后,我没有得到任何结果。它只显示以下内容: Search Results Number of books found: 以下是我的表单html代码: 公共检索 公共检索 选择搜索类型: 作者 标题 ISBN 输入搜索词:
Search Results
Number of books found:
以下是我的表单html代码:
公共检索
公共检索
选择搜索类型:
作者
标题
ISBN
输入搜索词:
您的连接使用了mysqli
扩展,因此您的查询也必须使用该扩展,而不是mysql.*
$result = mysql_query($query); // Wrong extension. Use mysqli
应该是
$result = mysqli_query($con,$query);
然后所有后续的数据库函数都必须使用mysqli.*
,不能将两者混合使用
旁注:
使用而不是
addslashes
谢谢它显示了找到的图书数量:1但没有显示title、author、isbn、priceYes的值,因为正如我提到的,所有后续函数都必须是mysqli.*
函数。像mysql\u fetch\u array
etcd不要使用mysqli\u real\u escape\u string使用预先准备好的语句,它们更安全使用mysqli\u real\u escape\u string
。您的查询通过编码的方式变得更安全或更不安全,而不仅仅是通过使用术语prepared statements
。这是正确的。然而,使用预先准备好的语句比使用escape_字符串更有意义。它速度更快,可重复使用性更强。在这种特殊情况下,@anders_reimer保持where子句的动态性而不验证输入,从而使自己处于开放状态。在从字段输入构建查询之前,他应该确认字段输入是实际存在的。构建一个动态的预处理语句很有趣。此外,我发现我应该使用双引号