PHP &

2 Cevap php

I http://htmlpurifier.org/ Benim kullanıcı verilerini teslim filtrelemek için HTML Arıtma bütünleşmek için çalışıyorum ama aşağıda aşağıdaki hatayı alıyorum. Ve ben bu sorunu çözebilirsiniz nasıl merak ediyorum?

Ben şu hatayı alıyorum.

on line 22: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given 

hattı 22 olduğunu.

if (mysqli_num_rows($dbc) == 0) {

İşte php kodudur.

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;
}

}

2 Cevap

$dbc false dönüyor. Sorgunuz bunun bir hata vardır:

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");

Genel olarak, bu ilgili düzeltme Raveren tarafından tarif edilmiştir.

Sorgu hiçbir satır döndürülür veya erroneus olduğunu, bu nedenle FALSE döndürülür ya. Bunu değiştirin

if (!$dbc || mysqli_num_rows($dbc) == 0)

mysqli_num_rows:

Değerler Dönüş

Returns TRUE on success or FALSE on failure. For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.