PHP Error: Warning: mysqli_error() expects exactly 1 parameter, 0 given in..
Heyho Leute,
ich habe ein Problem und zwar kommt immer dieser Fehler:
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /var/customers/webs/ragent/pf/login.php on line 18 Call Stack: 0.0005 260448 1. {main}() /var/customers/webs/ragent/pf/login.php:0 0.0100 269488 2. mysqli_error() /var/customers/webs/ragent/pf/login.php:18 Ungültige Abfrage:
und mein Code ist der hier:
<?php
$author = "Nex";
session_start();
//Datenbankverbindung aufbauen
$cdb = mysql_connect("localhost", "DB-User", "DB-PW", "DP-Name")
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
$sql = "SELECT * FROM login";
$db_erg = mysql_query($sql, $cdb);
if(!$db_erg)
{
die('Ungültige Abfrage: ' . mysqli_error());
}
while($row = mysql_fetch_object($db_erg))
{
}
mysqli_free_result( $db_erg );
Die Daten sind alle richtig, bitte helft mir
4 Antworten
Du vermischt hier 2 Paar Schuhe. mysql und mysqli. Entweder du nutzt konsequent mysqli oder verwendest z.B. PDO - das vereinfacht so einiges.
Sein Fehler liegt darin, dass er 2 verschiedene Systeme nutzt mysql und mysqli und das habe ich ihm aufgezeigt. Er stellt eine mysql-Verbindung her, will aber per mysqli einen Fehler ausgeben und das auch noch falsch. Das kann er jetzt durchaus selbst erkennen.
Das Manual rät von der Verwendung der alten Extension mysql mittlerweile ab. Alternativen sind entweder die neue MySQL-Extension (MySQLi oder PDO) - auch hier wieder nichts von Grundsatzdiskussion, sondern ein offizieller Hinweis - wo also ist Dein Problem?
Sein Problem ist vermutlich deine eher unsympathisch wirkende Schreibweise. Aber immerhin hast du das Problem des Fragestellers richtig zuordnen können, deswegen sei dir ein Daumen Hoch von mir gewährt. Trotzdem könntest du etwas freundlicher schreiben :)
Mhh, ok wenn das so rübergekommen ist - hab einfach nur kurz und knapp das Problem beschrieben. Und da der Fragesteller nur einen kleinen Fehler gemacht hat, den ich einfach auf Unaufmerksamkeit schieben würde, ging ich davon aus, das damit die Lösung auf der Hand liegt.
Aber gut, dann werde ich beim nächsten mal bissi auf meine Formulierung achten.
Thx für den DH
Hey, Danke für den tipp! Hat geholfen ^^. Jetzt ist es nur so, das er zwar keinen Fehler etc ausgibt, aaaber, er gibt den Datensatz nicht aus.Kannst du nochmal helfen?
Hier der code:
$cdb = mysqli_connect("localhost", "ragentsql21", "1234", "ragentsql21")
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
$sql = "SELECT * FROM login";
$db_erg = mysqli_query($cdb, $sql);
if(!$db_erg)
{
die('Ungueltige Abfrage: ' . mysqli_error($cdb));
}
while($row = mysqli_fetch_row($db_erg))
{
$row['user'];
}
mysqli_free_result( $db_erg );
while($row = mysqli_fetch_row($db_erg))
{
$row['user'];
}
Du hast hier nur vergessen, ein print_r oder echo zu nutzen
Versuche es doch mal so:
print_r( $row['user'] );
Ein kleiner Hinweis am Rande... select * sollte man nicht unbedingt nutzen, sondern die abgefragten Datensätze direkt abzufragen. Also:
select user from login
lies doch bitte dazu mal den kleinen Beitrag hinter dem Link
Der Fehler scheint in der Funktion mysqli_error() zu liegen. Die erwartet einen Parameter, du hast aber keinen mitgegeben.
Öhm Browser verlauf löschen bzw. Alles Löschen, auch die Cookies
Versuch mal mysqli_error($cdb); bin kein php-profi, aber dir fehlt da ein parameter.
oder konsequent mysql !
der fragesteller wollte eine Lösung für sein problem, keine grundsatzdiskussion.