PHP&;MySQL:mysqli_num_rows()期望参数1是mysqli_结果,给定布尔值
我试图集成HTML净化器来过滤我的用户提交的数据,但我得到以下错误。我想知道如何解决这个问题 我得到以下错误PHP&;MySQL:mysqli_num_rows()期望参数1是mysqli_结果,给定布尔值,php,mysql,Php,Mysql,我试图集成HTML净化器来过滤我的用户提交的数据,但我得到以下错误。我想知道如何解决这个问题 我得到以下错误 on line 22: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given 第22行是 if (mysqli_num_rows($dbc) == 0) { 下面是php代码 if (isset($_POST['submitted'])) { // Handle the form.
on line 22: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given
第22行是
if (mysqli_num_rows($dbc) == 0) {
下面是php代码
if (isset($_POST['submitted'])) { // Handle the form.
require_once '../../htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype
$purifier = new HTMLPurifier($config);
$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
FROM users
INNER JOIN contact_info ON contact_info.user_id = users.user_id
WHERE users.user_id=3");
$about_me = mysqli_real_escape_string($mysqli, $purifier->purify($_POST['about_me']));
$interests = mysqli_real_escape_string($mysqli, $purifier->purify($_POST['interests']));
if (mysqli_num_rows($dbc) == 0) {
$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"INSERT INTO profile (user_id, about_me, interests)
VALUES ('$user_id', '$about_me', '$interests')");
}
if ($dbc == TRUE) {
$dbc = mysqli_query($mysqli,"UPDATE profile
SET about_me = '$about_me', interests = '$interests'
WHERE user_id = '$user_id'");
echo '<p class="changes-saved">Your changes have been saved!</p>';
}
if (!$dbc) {
// There was an error...do something about it here...
print mysqli_error($mysqli);
return;
}
}
if(isset($\u POST['submitted']){//处理表单。
require_once'../htmlpurifier/library/htmlpurifier.auto.php';
$config=HTMLPurifier_config::createDefault();
$config->set('Core.Encoding','UTF-8');//替换为您的编码
$config->set('HTML.Doctype','XHTML 1.0 Strict');//替换为Doctype
$punizer=新的HTMLPurifier($config);
$mysqli=mysqli_connect(“本地主机”、“根目录”、“站点名称”);
$dbc=mysqli\u查询($mysqli,“选择用户。*”,配置文件*
来自用户
联系人信息上的内部加入联系人信息。用户id=用户。用户id
其中users.user_id=3”);
$about_me=mysqli_real_escape_字符串($mysqli,$purizer->purify($_POST['about_me']));
$interests=mysqli\u real\u escape\u字符串($mysqli,$purizer->purify($\u POST['interests']);
if(mysqli_num_行($dbc)==0){
$mysqli=mysqli_connect(“本地主机”、“根目录”、“站点名称”);
$dbc=mysqli\u查询($mysqli,“插入到配置文件中(用户标识、关于我、兴趣)
值(“$user\u id”、“$about\u me”、“$interests”);
}
如果($dbc==TRUE){
$dbc=mysqli\u查询($mysqli,“更新配置文件
设置关于我=“$关于我”,兴趣=“$兴趣”
其中user_id=“$user_id”);
回显“您的更改已保存!
”;
}
如果(!$dbc){
//有一个错误…在这里做点什么。。。
打印mysqli_错误($mysqli);
返回;
}
}
查询要么没有返回行,要么是错误,因此返回FALSE
。换成
if (!$dbc || mysqli_num_rows($dbc) == 0)
mysqli\u num\u行数
:
返回值
成功时返回TRUE,成功时返回FALSE
失败。用于选择、显示、描述或
EXPLAIN mysqli_query()将返回一个
结果对象
$dbc
返回false。您的查询中有一个错误:
SELECT users.*, profile.* --You do not join with profile anywhere.
FROM users
INNER JOIN contact_info
ON contact_info.user_id = users.user_id
WHERE users.user_id=3");
Ravelen已经描述了一般的修复方法。短语“您的查询有错误”帮了我的忙。谢谢如果没有返回行,则查询将成功(0条记录不会使mysqli\u查询或mysqli\u num\u行返回false)。