Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mithilfe vorbereiteter Anweisungen in PHP sicher Daten aus MySQL abrufen?

Wie kann ich mithilfe vorbereiteter Anweisungen in PHP sicher Daten aus MySQL abrufen?

Susan Sarandon
Freigeben: 2024-12-20 13:07:10
Original
349 Leute haben es durchsucht

How Can I Securely Retrieve Data from MySQL Using Prepared Statements in PHP?

Sichern Sie vorbereitete MySQL-Anweisungen in PHP

Bei der Arbeit mit SQL-Abfragen in PHP ist es wichtig, der Sicherheit durch die Verwendung vorbereiteter Anweisungen Priorität einzuräumen. So erstellen Sie eine sichere vorbereitete Anweisung zum Abrufen von Spalten mithilfe der Eingabe von URL-Parametern:

Verwenden Sie MySQL Improved (MySQLi):

$db = new mysqli("host", "user", "pw", "database");
$stmt = $db->prepare("SELECT * FROM mytable WHERE userid = ? AND category = ? ORDER BY id DESC");
$stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));
$stmt->execute();

$stmt->store_result();
$stmt->bind_result($column1, $column2, $column3);

while ($stmt->fetch()) {
    echo "col1=$column1, col2=$column2, col3=$column3 \n";
}

$stmt->close();
Nach dem Login kopieren

Alternativ können Sie diese Hilfsfunktion verwenden, um die zu vereinfachen Bindung assoziativer Arrays:

function stmt_bind_assoc (&$stmt, &$out) {
    $data = mysqli_stmt_result_metadata($stmt);
    $fields = array();
    $out = array();

    $fields[0] = $stmt;
    $count = 1;

    while ($field = mysqli_fetch_field($data)) {
        $fields[$count] = &$out[$field->name];
        $count++;
    }
    call_user_func_array(mysqli_stmt_bind_result, $fields);
}
Nach dem Login kopieren

Zu verwenden it:

$stmt->store_result();

$resultrow = array();
stmt_bind_assoc($stmt, $resultrow);

while ($stmt->fetch()) {
    print_r($resultrow);
}
Nach dem Login kopieren

Leistungssteigerung

Vorbereitete Anweisungen verbessern die Leistung, indem sie die Notwendigkeit einer erneuten Analyse und Neuplanung von Abfragen minimieren. Allerdings ist die Auswirkung auf die Geschwindigkeit möglicherweise nicht signifikant, wenn es nur ein paar Mal auf einer einzelnen Seite verwendet wird. Dennoch bleibt es eine empfohlene Vorgehensweise für mehr Sicherheit und Schutz vor SQL-Injection-Schwachstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe vorbereiteter Anweisungen in PHP sicher Daten aus MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage