Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从mysql数据库检索数据_Php_Html_Mysql - Fatal编程技术网

Php 无法从mysql数据库检索数据

Php 无法从mysql数据库检索数据,php,html,mysql,Php,Html,Mysql,我一直在学习教科书中的一些php mysql教程。我应该能够从“books”数据库中检索一些数据,例如,如果我选择author作为searchtype,Michael作为searchterm,我应该会得到一些结果,因为数据库中有作者的名字。但是,在我从表格中提交数据后,我没有得到任何结果。它只显示以下内容: Search Results Number of books found: 以下是我的表单html代码: 公共检索 公共检索 选择搜索类型: 作者 标题 ISBN 输入搜索词:

我一直在学习教科书中的一些php mysql教程。我应该能够从“books”数据库中检索一些数据,例如,如果我选择author作为searchtype,Michael作为searchterm,我应该会得到一些结果,因为数据库中有作者的名字。但是,在我从表格中提交数据后,我没有得到任何结果。它只显示以下内容:

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子句的动态性而不验证输入,从而使自己处于开放状态。在从字段输入构建查询之前,他应该确认字段输入是实际存在的。构建一个动态的预处理语句很有趣。此外,我发现我应该使用双引号