PHP와 MySQL : mysqli_num_rows ()는 매개 변수 1이 mysqli_result, boolean이 주어진 것으로 기대한다. [duplicate]
PHPPHP와 MySQL : mysqli_num_rows ()는 매개 변수 1이 mysqli_result, boolean이 주어진 것으로 기대한다. [duplicate]
HTML 정수기 http://htmlpurifier.org/을 통합하여 사용자가 제출 한 데이터를 필터링하려고하는데 아래 오류가 발생합니다. 그리고이 문제를 어떻게 해결할 수 있을지 궁금합니다.
다음과 같은 오류가 발생합니다.
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;
}
}
해결법
-
==============================
1.$ dbc가 false를 반환합니다. 검색어에 오류가 있습니다.
$ 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");
이것에 대한 수정은 일반적으로 Raveren에 의해 기술되었습니다.
-
==============================
2.쿼리가 행을 반환하지 않았거나 잘못되었습니다. 따라서 FALSE가 반환됩니다. 그것을 다음으로 변경하십시오.
쿼리가 행을 반환하지 않았거나 잘못되었습니다. 따라서 FALSE가 반환됩니다. 그것을 다음으로 변경하십시오.
if (!$dbc || mysqli_num_rows($dbc) == 0)
mysqli_num_rows :
from https://stackoverflow.com/questions/2546314/php-mysql-mysqli-num-rows-expects-parameter-1-to-be-mysqli-result-boolean by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
URL에서 서버로 파일 다운로드 (0) | 2018.09.07 |
---|---|
PHP가 포함 된 GCM (Google 클라우드 메시징) (0) | 2018.09.06 |
PHP를 사용하여 파일을 다운로드하도록 강제 실행 (0) | 2018.09.06 |
PHP 용 obfuscator 코드가 있습니까? [닫은] (0) | 2018.09.06 |
인코딩을 감지하고 모든 것을 UTF-8로 만듭니다. (0) | 2018.09.06 |