Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich mysql_query für Datenbankabfragen in der PHP-Sprachentwicklung?

Wie verwende ich mysql_query für Datenbankabfragen in der PHP-Sprachentwicklung?

王林
王林Original
2023-06-11 08:44:262049Durchsuche

In der PHP-Sprachentwicklung wird häufig eine MySQL-Datenbank verwendet. Die Funktion mysql_query ist eine Methode für PHP, um eine Verbindung zur MySQL-Datenbank herzustellen, und sie ist auch eine der grundlegenden Methoden für die Datenabfrage. In diesem Artikel erfahren Sie, wie Sie die Funktion mysql_query für Datenbankabfragen verwenden.

1. Verstehen Sie die mysql_query-Funktion

mysql_query ist eine Funktion in PHP, die zum Senden von Abfragen an den MySQL-Server verwendet wird. Sie wird normalerweise zum Ausführen von Änderungsvorgängen wie INSERT-, UPDATE-, DELETE- und SELECT-Abfrageanweisungen verwendet.

Die grundlegende Syntaxstruktur ist wie folgt:

mysql_query(string $query , resource $connection = ?): mixed

Dabei ist „$query“ die auszuführende Abfrageanweisung, die eine gültige SQL-Anweisung sein muss; „$connection“ ist die Kennung für die Verbindung zur MySQL-Datenbank. und der Standardwert ist die zuletzt geöffnete Verbindung.

Wenn die Ausführung erfolgreich ist, wird eine MySQL-Ressourcenkennung zurückgegeben. Andernfalls wird false zurückgegeben, was bedeutet, dass die Abfrage nicht ausgeführt werden kann.

2. Verwenden Sie mysql_query zum Abfragen

Bevor Sie mysql_query zum Abfragen verwenden, müssen Sie zuerst eine Verbindung zur Datenbank herstellen. Sie können mit mysqli_connect oder PDO eine Verbindung zur Datenbank herstellen.

Der Beispielcode für die Verbindung zur MySQL-Datenbank lautet wie folgt:

// 服务器地址
$db_host = "localhost";
// 数据库用户名
$db_user = "root";
// 数据库密码
$db_password = "123456";
// 数据库名
$db_name = "mydatabase";

// 连接数据库
$link = mysql_connect($db_host, $db_user, $db_password) or die("连接失败!");

// 选择数据库
mysql_select_db($db_name, $link);

Als nächstes können wir die Funktion mysql_query zum Abfragen verwenden. Fragen Sie beispielsweise alle Schülerinformationen in einer Schülertabelle ab:

// 查询所有学生信息
$sql = "SELECT * FROM student";
$result = mysql_query($sql);

// 遍历结果集并输出每个学生的信息
while ($row = mysql_fetch_assoc($result)) { 
    echo '学生ID:'.$row['id'].',姓名:'.$row['name'].',年龄:'.$row['age'].'<br>'; 
}

Im obigen Code ist „$sql“ die auszuführende Abfrageanweisung. In diesem Beispiel werden alle Datensätze in der Tabelle „schüler“ abgefragt. „$result“ ist die von der Abfrage zurückgegebene Ausführungsergebnismenge. Gleichzeitig kann diese Ergebnismenge über die Funktion mysql_fetch_assoc durchlaufen werden. Die Funktion mysql_fetch_assoc gibt die aktuelle Ergebniszeile als assoziatives Array zurück und zeigt den Zeiger auf die nächste Zeile. Daher können alle Ergebnismengen die while-Schleife durchlaufen.

3. Vermeiden Sie SQL-Injection

Wenn Sie die Funktion mysql_query für die Datenabfrage verwenden, müssen Sie darauf achten, SQL-Injection-Probleme zu vermeiden. Unter SQL-Injection versteht man eine Angriffsmethode, bei der Hacker mithilfe von SQL-Anweisungen in einem Programm illegale SQL-Anweisungen ausführen oder durch die Eingabe bestimmter Sonderbefehle und Zeichen an vertrauliche Daten gelangen. Um die Sicherheit der Anwendung zu gewährleisten, müssen Eingabeparameter bei der Durchführung von SQL-Abfragen vorverarbeitet werden.

Die folgenden Methoden sind die wichtigsten, um SQL-Injection zu vermeiden:

1. Verwenden Sie die PHP-Funktion „addslashes“.

Die Funktion der Funktion „addslashes“ besteht darin, einfache Anführungszeichen ('), doppelte Anführungszeichen (") und Backslashes () in zu entfernen Zeichenfolge Escape-Sonderzeichen, um SQL-Injection-Angriffe zu vermeiden.

Verwendungsbeispiel:

// 防SQL注入处理函数
function filter($text) {
    if(!get_magic_quotes_gpc()) {
        $text = addslashes($text);    // 对单引号、双引号、反斜杠等进行转义处理
    }
    return $text;
}

// 读取提交的用户名和密码信息
$username = filter($_POST['username']);
$password = filter($_POST['password']);

// 查询用户信息
$sql = "SELECT * FROM user WHERE username='$username' AND password='$password'";
$result = mysql_query($sql);

2. PHP-MySQL-Erweiterungsfunktion verwenden

MySQL ist ein Modul in der PHP-Erweiterungsbibliothek, das von MySQL bereitgestellte API-Schnittstellenfunktionen bereitstellt und die Vorverarbeitungsmethode unterstützt Führen Sie SQL-Abfrageanweisungen aus.

Der Beispielcode für die Abfrage mit mysqli lautet wie folgt:

// 预处理查询
$stmt = mysqli_prepare($link, "SELECT * FROM user WHERE username=? AND password=?");
mysqli_stmt_bind_param($stmt, "ss", $username, $password);
mysqli_stmt_execute($stmt);

// 处理结果集
$result = mysqli_stmt_get_result($stmt);

// 遍历结果集并输出每行信息
while ($row = mysqli_fetch_assoc($result)) { 
    echo "用户名:".$row['username'].",密码:".$row['password']."<br>"; 
}

// 关闭会话句柄
mysqli_stmt_close($stmt);

3. PHP-PDO-Erweiterungsfunktion verwenden

PDO ist eine Erweiterung in PHP für den Betrieb von Datenbanken ein vollständiger Satz von Vorverarbeitungsmethoden zur effektiven Vermeidung von SQL-Injection-Angriffen

Der Beispielcode für die Verwendung von PDO zum Abfragen lautet wie folgt:

// 连接数据库
$db_host = "localhost";
$db_name = "mydatabase";
$db_user = "root";
$db_password = "123456";
$dsn = "mysql:host={$db_host};dbname={$db_name}";
$conn = new PDO($dsn, $db_user, $db_password);

// 预处理查询
$stmt = $conn->prepare("SELECT * FROM user WHERE username=:username AND password=:password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();

// 处理结果集
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 遍历结果集并输出每行信息
foreach ($result as $row) {
    echo "用户名:".$row['username'].",密码:".$row['password']."<br>"; 
}

// 关闭连接
$conn = null;

4. Zusammenfassung

In diesem Artikel wird die Verwendung der Funktion mysql_query für Datenbankabfragen vorgestellt Bietet auch einige Methoden zur Vermeidung von SQL-Injection-Angriffen an. Für Entwickler, die diese Kenntnisse bereits beherrschen, können Sie auf jeden Fall andere fortgeschrittene PHP- und MySQL-Nutzungsfähigkeiten erlernen Programmsicherheit und Datengenauigkeit sind eines der wichtigen Themen, die Entwickler immer berücksichtigen müssen.

Das obige ist der detaillierte Inhalt vonWie verwende ich mysql_query für Datenbankabfragen in der PHP-Sprachentwicklung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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