Warning: mysqli_query() erwartet parameter 1 to be mysqli, string given in
Bekam ich die Warnung meantioned in den Titel und mein code ist hier:
<?php
require_once 'conn.php';
require_once 'http.php';
if (isset($_REQUEST['action'])) {
switch ($_REQUEST['action']) {
case 'Login':
if (isset($_POST['email'])
and isset($_POST['passwd']))
{
$sql = "SELECT user_id, access_lvl,name "."FROM cms_users"."WHERE email='" . $_POST['email'] . "' " .
"AND passwd='" . $_POST['passwd'] . "'";
$result = mysqli_query($sql, $conn) or die('Could not look up user information; ' . mysql_error());
- Sie mischen
mysqli_
undmysql_
.mysql_error
wird nicht wieder Fehler fürmysqli_
Funktionen. - Schöne sql-injection-Angriff Verwundbarkeit. Genießen Sie Ihre server pwn3d.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist genau so, wie die Fehlermeldung angezeigt, die besagt, wie Sie sind übergeben von Argumenten an mysqli_query falsch. Assumming
$conn
ist Ihre mysqli-Verbindung erzeugt irgendwann durchnew mysqli()
es sein sollte:Des Weges wurden Sie aufgerufen wurden, übergeben Sie eine Zeichenfolge,
$sql
wie das erste argument.mysql_error()
die nicht zeigen, bis in den Bearbeitungen.or die('Could not look up user information; ' . mysql_error());
die Lesen sollte alsor die('Could not look up user information; ' . mysqli_error($conn));
. Ich habe nie downvote hastig, btw. 😉Ich bin 3 Jahre zu spät, aber alles, was Sie tun müssen ist, tauschen Sie die Parameter der
mysqli_query()
Ich hatte dieses problem, aber nach dem wischen
$result = mysqli_query($sql, $conn)
zu$result = mysqli_query( $conn,$sql)
Schaffe ich es lösen dieser Fehler
Ich habe den gleichen Fehler, obwohl $result = mysqli_query($conn, $sql) ist der richtige Weg, um.
Ich var_dump() der $conn-Objekt und es ist ein set-Objekt auf die Zeit, die ich die Abfrage ausführen, aber immer noch gibt eine 'eingegebene Zeichenfolge' error.
War ich Zugriff auf die $conn-Objekt nach dem analysiert wird, in eine Funktion, der ich mit es mit in der gleichen Weise, die ich getan habe, durch das gesamte Projekt ohne Fehler.
Re-Deklaration der $conn-Objekt innerhalb der Funktion, statt der übergabe in die Funktion beendet die Fehler, wenngleich dieses Verhalten nicht auftreten, anderswo in meinem Projekt. Dies ist keine ideale Lösung.
Hinweis: ich bin mit einem .env für die lokale Entwicklung, die bewirkt, dass keine Probleme und hilft mit der Bereitstellung lokal/Remote über .git.
Nach vielen Stunden, ich glaube ehrlich, es ist ein PHP-bug hier, ich bin mit der 7.3.0, traten aber in 7.2.5 so gut wie ich bin definitiv analysiert eine db-connection-Objekt, kein string.
Nur dieses posting zur information, falls jemand anderes fährt. Danke.
PS. Passwörter sollten nicht gespeichert werden in der Datenbank im Klartext und ist ein großes Sicherheitsrisiko. Wenn der Autor noch nicht angepasst, dies noch werden (ich weiß, es ist eine alte post), es ist wichtig zu Lesen:
Der Secure-hash-und salt für PHP Passwörter