Heim >Backend-Entwicklung >PHP-Problem >So führen Sie eine Abfrage in PHP aus

So führen Sie eine Abfrage in PHP aus

WBOY
WBOYOriginal
2023-05-06 15:07:07705Durchsuche

In PHP ist die Abfrage eine sehr häufig verwendete Operation, um die erforderlichen Daten aus der Datenbank abzurufen oder zu überprüfen. Dies ist eine wichtige Grundlage, denn sie ermöglicht uns den Zugriff auf die Inhalte der Datenbank.

In diesem Artikel erfahren Sie, wie Sie Abfragen in PHP ausführen, um unsere Webanwendungen leistungsfähiger zu machen.

1. Verbindung zur Datenbank herstellen

Bevor wir mit der Abfrage beginnen, müssen wir eine Datenbankverbindung herstellen. Sie können PDO (PHP Data Objects) oder die MySQL-Erweiterung verwenden.

PDO verwenden:

$host = 'localhost';
$dbname = 'mydatabase';
$user = 'myusername';
$pass = 'mypassword';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    //设置错误模式为异常处理
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully!";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

Mysqli verwenden:

$host = 'localhost';
$dbname = 'mydatabase';
$user = 'myusername';
$pass = 'mypassword';

// 创建连接
$conn = new mysqli($host, $user, $pass, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully!";

2. Abfrage ausführen

Sobald wir die Datenbankverbindung hergestellt haben, können wir die Abfrage ausführen. Hier ist ein Beispiel für die Durchführung einer SELECT-Abfrage mit PDO und mysqli:

Mit PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);

Mit mysqli:

$conn = new mysqli($host, $user, $pass, $dbname);

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

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();

3. Bindungsparameter

Beim Ausführen einer Abfrage möchten wir normalerweise, dass die Abfrage nur Ergebnisse zurückgibt die bestimmten Kriterien entsprechen. In diesem Fall müssen wir Bind-Parameter verwenden, um die Abfragebedingungen von der Abfrageanweisung zu trennen.

Hier ist ein Beispiel für die Bindung von Parametern mit PDO und MySQLi:

Mit PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);

Mit MySQLi:

$conn = new mysqli($host, $user, $pass, $dbname);

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

$name = "John Doe";

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();

4. Vorkompilierte Abfragen

Vorkompilierte Abfragen sind eine Möglichkeit, Datenbankabfragen zu optimieren, die es uns ermöglichen, Platzhalter in Abfragen zu verwenden um SQL-Injection-Angriffe zu vermeiden.

Hier ist ein Beispiel einer vorkompilierten Abfrage mit PDO und mysqli:

Mit PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$name]);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);

Mit mysqli:

$conn = new mysqli($host, $user, $pass, $dbname);

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

$name = "John Doe";

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();

5. Ergebnismengenverarbeitung

Sobald wir die Abfrage ausgeführt haben, müssen wir die Ergebnismenge verarbeiten. Dies bedeutet, dass Sie sie in ein geeignetes Format für die Verwendung in Webanwendungen formatieren, z. B. Arrays oder JSON-Strings.

Hier ist ein Beispiel für die Verarbeitung einer Ergebnismenge:

PDO verwenden:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 格式化为JSON字符串
echo json_encode($result);

Mysqli verwenden:

$conn = new mysqli($host, $user, $pass, $dbname);

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

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

// 格式化为数组
$data = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

// 格式化为JSON字符串
echo json_encode($data);

$conn->close();

Zusammenfassung

Das Ausführen von Abfragen in PHP ist eine wichtige Grundlage, die häufig in Webanwendungen verwendet wird. Wir können PDO oder die MySQLi-Erweiterung verwenden, um eine Datenbankverbindung herzustellen und die SELECT-Abfrage verwenden, um die benötigten Daten abzurufen. Wenn Abfragebedingungen gebundene Parameter erfordern, müssen wir gebundene Parameter und vorkompilierte Abfragen verwenden, um die Abfragesicherheit zu gewährleisten. Abschließend müssen wir die Ergebnismengen verarbeiten und in das entsprechende Webanwendungsdatenformat formatieren.

Das obige ist der detaillierte Inhalt vonSo führen Sie eine Abfrage in PHP aus. 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