2017-07-26 3 views
-1

In meinem PHP.Mysql ($ SQL) Ergebnis sollte 1.Sysum sollte nicht leer sein in einem anderen Wort, mysql_num_rows($sel) > 0 sollte true sein.Wie überprüft man SQL (mysql) Ergebnis. PHP

Aber eigentlich kann mein Code nicht funktionieren. Ich weiß nicht warum. Wer kann mir helfen?

$conn = new PDO('mysql:host=localhost;port=3306;dbname=hpc' , 'root' , 'Yd'); 
$Name=$_COOKIE['PName']; 
$sql = "select sysnum from hpc where handler='".$Name."' and stat='N';"; 
$sel=$conn->query($sql); 
if(mysql_num_rows($sel) > 0) 
{  
mycode; 
} 
+0

Mein conn ist $ conn = neues PDO ('mysql: host = localhost; port = 3306; dbname = hpc', 'root', 'Yd'); – john

+0

Können Sie uns Ihre Verbindung zeigen? Was in "$ conn"? Haben Sie mit mysql, mysqli oder PDO eine Verbindung zu Ihrer Datenbank hergestellt? – Twinfriends

+0

Verwenden Sie nicht mysql_ * 'Funktionen ... sie sind veraltet. Und DEFINITIVE analysieren nicht etwas direkt aus einem Cookie in Ihre Anfrage ... – Ivar

Antwort

-1

in ein Array führen Hol- und Elemente mit count Funktion, wie diese zählen:

$Name=$_COOKIE['PName']; 
$sql = "select sysnum from hpc where handler='".$Name."' and stat='N';"; 
$sel = $conn->query($sql)->fetchall(); 
if(count($sel) > 0){  
mycode; 
} 
+0

Bitte kopieren Sie nicht einfach eine SQL Verwundbarkeit als Antwort ... Zukünftige Benutzer könnten sie einfach in ihren Code kopieren. – Ivar

+0

$ conn-> query ($ sql) -> fetchall(); funktioniert gut.Thankyou !! – john

1

Oh Junge, der ziemlich schnell mit Ihrem Kommentar ging, noch bevor Mine: P

So, Die Antwort ist einfach: Sie können mysql_num_rows nicht auf einer PDO Verbindung verwenden. Das sind zwei verschiedene Treiber. So wie du versuchst, das Auto deiner Frau mit deinen eigenen Schlüsseln zu starten. Grundsätzlich sind beide Schlüssel, aber sie funktionieren nicht mit jedem Auto.

Es ist das gleiche hier in Ihrem Fall. mysql_num_rows kommt vom mysql-Treiber OUTDATED. (Verwenden Sie keinesfalls mysql_ *, es wird in PHP7 nicht mehr unterstützt und ist veraltet). Um es mit PDO zu tun ist der richtige Weg, aber Sie müssen Ihren Code ein wenig anpassen.

$Name=$_COOKIE['PName']; 
$sql = "select count(sysnum) from hpc where handler='".$Name."' and stat='N';"; 
$sel=$conn->query($sql); 

$rows = $sel->rowCount(); 

echo $rows; 

Ich hoffe, dass Arbeit, wenn nicht, lass es mich wissen. Ich weiß, dass ich beim letzten Mal Probleme mit PDO hatte.

WICHTIG - GEFAHR:

Auch empfehle ich Ihnen wirklich einen Blick auf http://bobby-tables.com und lernen etwas über SQL-Injektion zu nehmen. Ihr Code ist überhaupt nicht sicher und Ihre Datenbank kann ziemlich einfach gehackt werden. Da Sie PDO verwenden, hält Sie nichts davon ab, vorbereitete Anweisungen zu verwenden, was Ihren Code viel besser machen würde.

Ich hoffe, ich könnte Ihnen helfen. Wenn Sie weitere Fragen haben oder etwas nicht funktionieren sollte, lassen Sie es mich bitte wissen.

Verwandte Themen