PHP連接數據庫、創建數據庫、創建表的三種方式


這篇博客主要介紹了三種方式來連接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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM