0 Pluspunkte 0 Minuspunkte

Ich versuche Daten aus einer MySQL Datenbank m,it PHP auszulesen.

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mysql";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Fehler: " . $conn->connect_error);
}

$sql = "SELECT User,Host,Password FROM USER";

$erg = mysqli_query($sql);

while($row = mysqli_fetch_array($erg)) {

    print_r($row);

}

?>

Wenn ich das Script ausführe erscheint die Fehlermeldung

Warning: mysqli_query() expects at least 2 parameters, 1 given in D:\xampp\htdocs\index.php on line 16

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in D:\xampp\htdocs\index.php on line 18

Wie erstelle ich die Abfrage und zeige das Ergebnis an?

von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Die Zeile

$erg = mysqli_query($sql);

sollte so aussehen.

$erg = mysqli_query($conn, $sql);

Ich würde dir ausserdem zu Prepared Statements raten um SQL Injections zu vermeiden.

von  
0 Pluspunkte 0 Minuspunkte

Du könntest/solltest PDO benutzen.

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mysql";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "SELECT User, Host, Password FROM USER";
    $stmt = $conn->query($sql);

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        print_r($row);
    }
} catch (PDOException $e) {
    die("Fehler: " . $e->getMessage());
}

?>

von