PHP連接數據庫 面向過程
$config = [
'host'=>'127.0.0.1', //數據庫地址
'name'=>'test', //庫名
'user'=>'root', //數據庫用戶名
'pass'=>'root' //數據庫密碼
];
$db = mysqli_connect($config['host'],$config['user'],$config['pass'],$config['name']);
if(!$db)
{
die('數據庫連接失敗,請檢查配置信息:' . mysqli_connect_error());
}
//設置數據庫編碼格式 或者說指定了客戶端和服務器之間傳遞字符的編碼規則為UTF8
mysqli_query($db,"set names utf8");
//進行數據查詢 比如我要查詢user表內所有用戶的Id,name
//封裝一下sql語句
$sql = 'select Id,name form user';
//把查詢結果放到變量里面 或者說把查詢成功后返回的資源標識符放到變量 $row
$row = mysql_query($db,$sql);
//判斷是否為空,為空則查詢失敗
if(empty($row))
{
die("查詢數據失敗");
}
//判斷查詢結果是否為0條
if(mysqli_num_rows($row) > 0)
{
//把查詢結果打印出來
while($row = mysqli_fetch_assoc($result))
{
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
}
PHP連接數據庫 面向對象
$config = [
'host'=>'127.0.0.1', //數據庫地址
'name'=>'test', //庫名
'user'=>'root', //數據庫用戶名
'pass'=>'root' //數據庫密碼
];
//連接數據
$db = new mysqli($config['host'],$config['user'],$config['pass'],$config['name']);
//判斷數據庫是否連接失敗
if($db->errno > 0)
{
die("數據庫連接失敗" . $db->error);
}
//如上面那個 寫sql語句
$sql = "select Id,name form user";
//把查詢結果放到變量里
$con = $db->query($sql);
//判斷查詢結果是否為0
if($con->num_rows >0)
{
//打印查詢結果
while($row = $con->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
}
PHP連接數據 PDO以及預處理
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
//定義一個類,方便一會打印
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "127.0.0.1"; //數據庫地址
$username = "root"; //用戶名
$password = "root"; //數據庫密碼
$dbname = "test"; //數據庫庫名
//使用異常處理來獲取錯誤信息
try {
//先new PDO類並把數據庫配置傳入進去
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
//設置錯誤級別
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//把sql語句傳入
$stmt = $conn->prepare("SELECT Id,name FROM user");
//執行
$stmt->execute();
// 設置結果集為關聯數組
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
//通過foreach 和RecursiveIteratorIterator 把查詢結果給打印出來
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
//如果捕捉到錯誤就打印出錯誤信息
echo "PDO錯誤: " . $e->getMessage();
}
$conn = null;
echo "</table>";