2017-02-26 2 views
0

Ich verwende PHP und MySQL für meine Web-Projekt, aber alles scheint in Ordnung zu sein, aber es gibt mir booleschen Fehler bei mysqli_num_rows();mysql query erro

enter image description here

Hinweis: die erste Zeile I echo so kann ich sehen, ob die Werte, die ich eingegeben werden übergeben wird oder nicht, und es funktioniert es gibt feine noch Boolesche mir Fehler in der nächsten Zeile.

<?php 
include("Database/database.php"); 
session_start(); 
$uname = $_SESSION['un']; 
$upassword = $_SESSION['up']; 
$varch = $_SESSION['ch']; 
$sql = "SELECT `username`, `userpwd`, `userid` FROM `useraccount` WHERE username = '$uname' AND userpwd = '$upassword'"; 
echo $sql; 
$result = mysqli_query($link, $sql); 
if($rowcount = mysqli_num_rows($result)) 
{ 
    if($varch == "on") 
    { 
     setcookie("name", $uname, time()+60*60*7); 
     setcookie("password", $upassword, time()+60*60*7); 
    } 
    header('Location: useraccount.php'); 
} 
?> 
+3

Mögliches Duplikat von [Warnung: mysql \ _num \ _rows() erwartet, dass Parameter 1 Ressource boolean ist] (http://stackoverflow.com/questions/26476056/warning-mysql-num- rows-expenses-parameter-1-to-be-resource-boolean-gegeben) – Wolen

+0

Wo haben Sie die Variable $ link definiert? Code anzeigen – rmalviya

+0

Ihre 'mysqli_query ($ link, $ sql)' ist fehlgeschlagen. Überprüfen Sie '$ link' und' $ sql'. – rmalviya

Antwort

0

Die Funktion „mysqli_query“ gibt das „MySQLi_Result Objekt“, wenn Abfrage erfolgreich ausgeführt.
Andernfalls geben Sie "false" zurück.
In Ihrem Fall möglicherweise "falsch" ist in $ Ergebnis gespeichert Abfrage konnte nicht ausgeführt werden. Und "mysqli_num_rows" nimmt Objekt als parameter.Here mysql_result wenn Sie

$result = mysqli_query($link, $sql); 

die "false" heißt boolean found.Thats ist, warum der Fehler angezeigt wird.

Sie müssen die Ausgabeabfrage zuerst in mysql (phpmyadmin) ausführen. Verbessere es. und in Ihrem Code verwenden

+0

Ich habe es gelöst. du hattest Recht. Es gab einen Fehler in der Abfrage –

0

Wie Sie im Handbuch

Returns bei einem Fehler FALSE lesen kann. Für erfolgreiche SELECT-, SHOW-, DESCRIBE- oder EXPLAIN-Abfragen gibt mysqli_query() ein mysqli_result-Objekt zurück. Für andere erfolgreiche Abfragen gibt mysqli_query() TRUE zurück.

Sie müssen überprüfen, ob Ihre Abfrage fehlgeschlagen ist oder leeres Ergebnis zurückgegeben (enthält FALSE-Wert). Sie können es in der gleichen if tun, wo Sie $rowcount = mysqli_num_rows($result) haben. Es wird so aussehen:

if($result !== FALSE && $rowcount = mysqli_num_rows($result))