這篇博客主要介紹了三種方式來連接MySQL數據庫以及創建數據庫、創建表。(代碼是我在原來的基礎上改的)
- MySQLi - 面向對象
- MySQLi - 面向過程
- PDO
MySQLi 面向對象
<?php
//實例 (MySQLi - 面向對象)創建數據庫連接
echo "實例 (MySQLi - 面向對象)<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
// 創建連接
$conn = new mysqli($servername, $username, $password);
// 檢測連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
/*
*注意在以上面向對象的實例中 $connect_error 是在 PHP 5.2.9 和 5.3.0 中添加的。
* 如果你需要兼容更早版本 請使用以下代碼替換:
// 檢測連接
if (mysqli_connect_error()) {
die("數據庫連接失敗: " . mysqli_connect_error());
}
*/
// 創建數據庫myDB
$sql = "CREATE DATABASE test";
if ($conn->query($sql) === TRUE) {
echo "數據庫創建成功";
} else {
echo "<mark><br/>Error creating database: " . $conn->error."</mark>";
echo "<br/>";
}/* 注意: 當你創建一個新的數據庫時,你必須為 mysqli 對象指定三個參數 (servername, username 和 password)。
Tip: 如果你使用其他端口(默認為3306),為數據庫參數添加空字符串,指定端口號
如: new mysqli("localhost", "username", "password", "", port)*/
echo "連接成功<br/>";
$conn->close();//關閉連接
echo "關閉連接<br/>";
?>
<?php
//實例 (MySQLi 面向對象)創建表格
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
echo "<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
$dbname = "myDB";
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢測連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 使用 sql 創建數據表MyGuests
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
echo "<mark>";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "創建數據表錯誤: " . $conn->error;
}echo "</mark>";
//連接
$conn->close();
?>
MySQLi 面向過程
<?php
//實例 (MySQLi 面向過程)--創建數據庫連接
echo "實例 (MySQLi面向過程)<br/>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
// 創建連接
$conn = mysqli_connect($servername, $username, $password);
// 檢測連接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//創建數據庫
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "<br/>數據庫創建成功";
} else {
echo "<mark><br/>Error creating database: " . mysqli_error($conn)."</mark>";
}
echo "<br/>連接成功<br/>";
mysqli_close($conn);
echo "關閉連接<br/>";
?>
<?php
//實例 (MySQLi 面向過程)創建數據庫連接
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
echo "<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
$dbname = "myDB";
// 創建連接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 檢測連接
if (!$conn) {
echo "<mark>";
die("連接失敗: " . mysqli_connect_error());
echo "</mark>";
}
// 使用 sql 創建數據表MyGuests
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
echo "<mark>";
if (mysqli_query($conn, $sql)) {
echo "數據表 MyGuests 創建成功";
} else {
echo "創建數據表錯誤: " . mysqli_error($conn);
} echo "</mark>";
mysqli_close($conn);
?>
(PDO)創建數據庫連接
<?php
//實例 (PDO)--創建數據庫連接
echo "實例 (PDO)<br/>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
try {
$conn = new PDO("mysql:host=$servername;dbname=mysql", $username, $password);
echo "<br/>連接成功<br/>";
//創建數據庫
// 設置 PDO 錯誤模式為異常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE myDBPDO";
// 使用 exec() ,因為沒有結果返回
$conn->exec($sql);
echo "<mark>數據庫創建成功<br></mark>";
}catch(PDOException $e)
{
echo "<mark>".$sql . "<br>" . $e->getMessage()."</mark>";
echo "<br/>";
}
$conn = null;
echo "關閉連接<br/>";
?>
<?php
//實例 (PDO)--創建數據庫連接
echo "實例 (PDO)<br/>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s',strtotime('now'));
echo "<br/>";
$servername = "127.0.0.1";
$username = "root";
$password = "123456";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 設置 PDO 錯誤模式,用於拋出異常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 使用 sql 創建數據表
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
// 使用 exec() ,沒有結果返回
$conn->exec($sql);
echo "<mark>數據表 MyGuests 創建成功</mark>";
}
catch(PDOException $e)
{
echo "<mark><br>".$sql . "<br>" . $e->getMessage()."<br></mark>";
}
//關閉連接
$conn = null;
?>
本文代碼參考修改自http://www.runoob.com/php/php-mysql-connect.html