Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich mysql_query für Datenbankabfragen in der PHP-Sprachentwicklung?
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!