2016-05-25 14 views
-2

Das ist mein Code:Syntaxfehler, unerwartete 'mysqli_num_rows'

$u_check = mysql_query("SELECT username FROM users WHERE usnername='$un' '"); 
$check = mysqli_num_rows ($u_check); 

ich die folgende Fehlermeldung erhalten:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Socially\index.php on line 27

ich nicht dieses Problem beheben kann, ich bin mit einem Tutorial, mir zu helfen tu etwas, und das ist was er tippte. Ich möchte es wirklich reparieren, damit ich weiter machen kann, was ich tun möchte; Ich mache die Datenbank, weil ich ein Anmelde- und Registrierungsformular mache. Bitte helfen Sie. Als ich $check = mysqli_num_rows ($u_check); in die SQL-Registerkarte in phpMyAdmin geben, erhalte ich diese Meldung:

Statische Analyse:

3 errors were found during analysis.
Unexpected character. (near "$" at position 0)
Unexpected character. (near "$" at position 25)
Unexpected beginning of statement. (near "$" at position 0)

SQL query:
$check = mysqli_num_rows($u_check)

MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use

near '$check = mysqli_num_rows($u_check)' at line 1

+2

Mischen Sie nicht mysql_ * mit mysqli_ *? – michaJlS

+0

Und es scheint auch verwirrend PHP und SQL. – showdev

+0

Ich sehe einen Tippfehler in der ersten Zeile: 'username' vs' usnername'. Das könnte einen Fehler und einen booleschen Wert ergeben. – showdev

Antwort

0

Sie mischen MySQL mit MySQLi

Wenn Sie MySQL verwenden:

$u_check = mysql_query("SELECT username FROM users WHERE usnername='$un'"); 
$check = mysql_num_rows ($u_check); 

Wenn Sie MySQLi verwenden:

$u_check = mysql_query($con, "SELECT username FROM users WHERE usnername='$un'"); 
$check = mysqli_num_rows ($u_check); 

(Ersetzen $con mit Ihrem Datenbankparameter, wenn Sie verwenden MySQL)

Es ist auch möglich, dass Sie username in Ihrer Anfrage gemeint, anstatt usnername.

+0

Vielen Dank! Ich schätze es. –

+0

Ich habe einen weiteren Fehler bekommen. Wenn ich das eintippe: else { $ pswd = md5 ($ pswd); $ pswd2 = md5 ($ pswd2); $ query = mysql_query ("INSERT INTO Benutzer WERTE ('', '$ un', '$ fn', '$ ln', '$ em', '$ pswd', '$ d', '0')"); } Ich bekomme eine Fehlermeldung: Parse Fehler: Syntaxfehler, unerwartete 'else' (T_ELSE) in C: \ xampp \ htdocs \ Socally \ index.php in Zeile 39 –

+0

Können Sie Zeile 39 schreiben? –

-1

ersetzen:

$u_check = mysql_query("SELECT username FROM users WHERE usnername='$un' '"); 

mit:

$u_check = mysqli_query("SELECT username FROM users WHERE usnername = $un"); 

Sie immer doppelte Anführungszeichen Variablen in, sonst das Skript denkt, was Sie schreiben ist eine Zeichenfolge, keine Variable.

+0

Was ist mit $ check = mysql_num_rows ($ u_check); Wenn ich nur die Korrektur einfügen, die Sie mir gaben, bekomme ich eine Fehlermeldung: Warnung: mysqli_query() erwartet mindestens 2 Parameter, 1 gegeben in C: \ xampp \ htdocs \ Socally \ index.php in Zeile 26 Warnung: mysqli_num_rows() erwartet Parameter 1 als mysqli_result, null in C: \ xampp \ htdocs \ Socially \ index.php in Zeile 27 –

+0

Diese SQL ist ungültig, die '$ un' ist eine Zeichenkette, daher muss sie in Anführungszeichen gesetzt werden wenn es zur DB kommt. mysqli_query benötigt eine Verbindungszeichenfolge. – chris85

Verwandte Themen