Php mysqli_num_类中的行函数错误
这是我第一次学习PHP,我尝试在数据库中进行简单的搜索。Php mysqli_num_类中的行函数错误,php,class,mysqli,Php,Class,Mysqli,这是我第一次学习PHP,我尝试在数据库中进行简单的搜索。 下面是我班上的一些脚本: class DB { ... function list_query($query) { $ns = array(); $q = mysqli_query($this->con_(), $query); while($n = mysqli_fetch_assoc($q)) { $ns[] = $n; } return $ns; } ... functi
下面是我班上的一些脚本:
class DB {
...
function list_query($query) {
$ns = array();
$q = mysqli_query($this->con_(), $query);
while($n = mysqli_fetch_assoc($q)) {
$ns[] = $n;
}
return $ns;
}
...
function num_query($q) {
$num = mysqli_num_rows($q);
return $num;
}
...
}
搜索脚本:
$key = "foo";
$qsearch = $db->list_query("SELECT * FROM posts WHERE content LIKE '%".$db->escape_query($key)."%'");
$num = $db->num_query($qsearch);
if ($num == 0) {
echo "<h2>not found</h2>";
} else {
echo "<h2>result for : ".$key."</h2>";
foreach($qsearch as $val) {
echo "<h4>".$val['title']."</h2>";
echo strip_tags($val['content']);
}
}
我已经用手动mysqli\u query()检查了它,然后使用num\u query()函数,它工作得很好。对不起我的英语您的
列表查询()
返回数组。而您的num_查询
需要mysqli_结果作为参数
因此,当您编写$qsearch=$db->list\u query()
时,您将得到一个数组;然后将该数组传递给num\u query
也许,您的num\u查询应该如下所示:
function num_query($result) {
return count($result);
}
$q
在列表查询
功能的范围内定义。将$q
指定为全局变量或类属性会很有用。但是我在escape\u query($q)函数中也使用了$q,但是在使用print\u r()之后,如果结果是数组,我就可以很好地实现这一点。谢天谢地,我真的很想知道,如果你能简单地使用PDO,它有本地方法,比如fetchAll()
和rowCount()
,为什么你要在mysqli
接口周围使用对象包装器呢?我对PDO还是有点了解:)好吧,相信我,这会对你有很大的好处。围绕mysqli编写对象包装就像重新发明一个方轮。
function num_query($result) {
return count($result);
}