solucion - select count php
PHP y MySQL: mysqli_num_rows() espera que el parĂ¡metro 1 sea mysqli_result, boolean dado (2)
La consulta no devolvió ninguna fila o es errónea, por lo tanto, se devuelve FALSE
. Cambiarlo a
if (!$dbc || mysqli_num_rows($dbc) == 0)
mysqli_num_rows
:
Valores de retorno
Devuelve VERDADERO en caso de éxito o FALSO en caso de error. Para SELECT, SHOW, DESCRIBE o EXPLAIN mysqli_query () devolverá un objeto de resultado.
Esta pregunta ya tiene una respuesta aquí:
Estoy intentando integrar HTML Purifier http://htmlpurifier.org/ para filtrar los datos enviados por el usuario, pero me aparece el siguiente error. Y me preguntaba cómo puedo solucionar este problema.
Obtuve el siguiente error.
on line 22: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given
línea 22 es.
if (mysqli_num_rows($dbc) == 0) {
Aquí está el código 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;
}
}
$dbc
está volviendo falso. Su consulta tiene un error:
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");
La solución para esto en general ha sido descrita por Raveren.