PHP與MySQL是一對不可分割的存在,其中,SQL連接技術是兩者之間極其重要的橋梁。本文就來簡單講解一下如何使用PHP代碼進行SQL連接。
PHP與MySQL的連接需要通過一些步驟,首先需要建立連接、然后選擇數據庫、最后發出SQL查詢語句。其中,最重要的是建立連接。以下為示例代碼:
以上代碼用到了mysqli函數進行連接。其中,$servername是數據庫地址,$username是數據庫用戶名,$password是數據庫密碼,$dbname是數據庫名。通過new mysqli建立連接,若連接失敗則輸出錯誤信息;若成功,則輸出“連接成功”。你還可以使用PDO函數建立連接。以下為示例代碼:
同樣是建立連接,使用了try...catch進行異常處理。如果連接失敗,會跑出PDOException異常。
連接上數據庫后,還需要選擇數據庫。使用mysqli函數和PDO函數的方法不同。以下為mysqli函數的示例代碼:
以上代碼中使用了$sql = "USE $dbname"選擇了數據庫。如果選擇數據庫成功,則輸出“數據庫選擇成功”,否則輸出錯誤信息。
以下為PDO函數的示例代碼:
同mysqli函數一樣,首先通過PDO建立連接,然后通過$conn->exec($sql)選擇數據庫。如果選擇成功,則輸出“數據庫選擇成功”。
最后,我們需要進行SQL查詢語句。以下為mysqli函數的示例代碼:
以上代碼使用了SELECT語句查詢數據庫,將結果輸出。如果查詢的結果不為0,則輸出結果;否則輸出“0 結果”。
以下為PDO函數的示例代碼:
以上代碼同樣使用SELECT語句進行查詢,輸出結果。需要注意的是,此處使用了PDO編寫的TableRows類進行輸出結果。
最后,我們需要提醒的是,在進行SQL查詢時,請不要遺漏MySQL注入問題。以下為一段預防SQL注入的代碼:
以上代碼使用了prepare和bind_param方法進行數據過濾,避免了SQL注入問題。
總結一下,PHP與MySQL之間的連接需要通過以下步驟:建立連接、選擇數據庫、SQL查詢語句。其中,建立連接是最為重要的。在進行SQL查詢時需要注意MySQL注入問題。
PHP與MySQL的連接需要通過一些步驟,首先需要建立連接、然后選擇數據庫、最后發出SQL查詢語句。其中,最重要的是建立連接。以下為示例代碼:
<?php $servername = "localhost"; //數據庫地址 $username = "username"; //數據庫用戶名 $password = "password"; //數據庫密碼 $dbname = "myDB"; //數據庫名 //創建連接 $conn = new mysqli($servername, $username, $password, $dbname); //檢查連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } echo "連接成功"; ?>
以上代碼用到了mysqli函數進行連接。其中,$servername是數據庫地址,$username是數據庫用戶名,$password是數據庫密碼,$dbname是數據庫名。通過new mysqli建立連接,若連接失敗則輸出錯誤信息;若成功,則輸出“連接成功”。你還可以使用PDO函數建立連接。以下為示例代碼:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 設置 PDO 錯誤模式為異常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "連接成功"; } catch(PDOException $e) { echo "連接失敗: " . $e->getMessage(); } ?>
同樣是建立連接,使用了try...catch進行異常處理。如果連接失敗,會跑出PDOException異常。
連接上數據庫后,還需要選擇數據庫。使用mysqli函數和PDO函數的方法不同。以下為mysqli函數的示例代碼:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password); // 檢查連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } // 選擇數據庫 $sql = "USE $dbname"; if ($conn->query($sql) === TRUE) { echo "數據庫選擇成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } ?>
以上代碼中使用了$sql = "USE $dbname"選擇了數據庫。如果選擇數據庫成功,則輸出“數據庫選擇成功”,否則輸出錯誤信息。
以下為PDO函數的示例代碼:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 選擇數據庫 $sql = "USE $dbname"; $conn->exec($sql); echo "數據庫選擇成功"; } catch(PDOException $e) { echo "連接失敗: " . $e->getMessage(); } ?>
同mysqli函數一樣,首先通過PDO建立連接,然后通過$conn->exec($sql)選擇數據庫。如果選擇成功,則輸出“數據庫選擇成功”。
最后,我們需要進行SQL查詢語句。以下為mysqli函數的示例代碼:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 檢查連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } // SQL 查詢 $sql = "SELECT id, firstname, lastname FROM MyGuests"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 輸出數據 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "0 結果"; } $conn->close(); ?>
以上代碼使用了SELECT語句查詢數據庫,將結果輸出。如果查詢的結果不為0,則輸出結果;否則輸出“0 結果”。
以下為PDO函數的示例代碼:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL查詢 $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests"); $stmt->execute(); // 設置結果集為關聯數組 $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); // 輸出數據 foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { echo $v; } } catch(PDOException $e) { echo "連接失敗: " . $e->getMessage(); } $conn = null; echo "</table>"; ?>
以上代碼同樣使用SELECT語句進行查詢,輸出結果。需要注意的是,此處使用了PDO編寫的TableRows類進行輸出結果。
最后,我們需要提醒的是,在進行SQL查詢時,請不要遺漏MySQL注入問題。以下為一段預防SQL注入的代碼:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 創建連接 $conn = new mysqli($servername, $username, $password, $dbname); // 檢查連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } // 預處理及綁定 $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $firstname, $lastname, $email); // 設置參數并執行 $firstname = "John"; $lastname = "Doe"; $email = "john@example.com"; $stmt->execute(); $firstname = "Mary"; $lastname = "Moe"; $email = "mary@example.com"; $stmt->execute(); $firstname = "Julie"; $lastname = "Dooley"; $email = "julie@example.com"; $stmt->execute(); echo "新記錄插入成功"; $stmt->close(); $conn->close(); ?>
以上代碼使用了prepare和bind_param方法進行數據過濾,避免了SQL注入問題。
總結一下,PHP與MySQL之間的連接需要通過以下步驟:建立連接、選擇數據庫、SQL查詢語句。其中,建立連接是最為重要的。在進行SQL查詢時需要注意MySQL注入問題。