Ik probeer HTML Purifier http://htmlpurifier.org/te integreren om mijn door gebruikers ingediende gegevens te filteren, maar Ik krijg de volgende fout hieronder. En ik vroeg me af hoe ik dit probleem kan oplossen?
Ik krijg de volgende foutmelding.
on line 22: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given
regel 22 is.
if (mysqli_num_rows($dbc) == 0) {
Hier is de php-code.
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;
}
}
Antwoord 1, Autoriteit 100%
$dbc
retourneert false. Uw zoekopdracht heeft er een fout opgetreden:
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");
De oplossing hiervoor is in het algemeen beschreven door Raveren.
Antwoord 2, Autoriteit 91%
De query heeft geen rijen geretourneerd of is erroneeus, dus FALSE
wordt geretourneerd. Verander het op
if (!$dbc || mysqli_num_rows($dbc) == 0)
mysqli_num_rows
:
Return-waarden
retourneert true op succes of onwaar
mislukking. Voor selecte, show, beschrijf of
Verklaren MySQLI_QUERY () zal een
Resultaatobject.