PHP的學習 連線MySQL的三種方式

2021-09-13 00:17:42 字數 4136 閱讀 9250

記錄一下php連線mysql的三種方式。

先mock一下資料,可以執行一下sql。

/*建立資料庫*/

create database if not exists `test`;

/*選擇資料庫*/

use `test`;

/*建立表*/

create table if not exists `user` (

name varchar(50),

age int

);/*插入測試資料*/

insert into `user` (name, age) values('harry', 20), ('tony', 23), ('harry', 24);

第一種是使用php原生的方式去連線資料庫。**如下:

<?php 

$host = 'localhost';

$database = 'test';

$username = 'root';

$password = 'root';

$selectname = 'harry';//要查詢的使用者名稱,一般是使用者輸入的資訊

$insertname = 'testname';

$connection = mysql_connect($host, $username, $password);//連線到資料庫

mysql_query("set names 'utf8'");//編碼轉化

if (!$connection)

$selecteddb = mysql_select_db($database);//選擇資料庫

if (!$selecteddb)

$selectname = mysql_real_escape_string($selectname);//防止sql注入

$query = "select * from user where name = '$selectname'";//構建查詢語句

$result = mysql_query($query);//執行查詢

if (!$result)

while ($row = mysql_fetch_row($result))

//新增記錄

$insertname = mysql_real_escape_string($insertname);//防止sql注入

$insertsql = "insert into user(name, age) values('$insertname', 18)";

$result = mysql_query($insertsql);

echo $result . "\n";

//更新記錄

$updatesql = "update user set age = 19 where name='$insertname'";

$result = mysql_query($updatesql);

echo $result . "\n";

//刪除記錄

$deletesql = "delete from user where age = 19";

$result = mysql_query($deletesql);

echo $result . "\n";

mysql_close($connection);//關閉連線

其執行結構如下:

name: harry age: 20 

name: harry age: 24 11

1

<?php 

$host = 'localhost';

$database = 'test';

$username = 'root';

$password = 'root';

$selectname = 'harry';//要查詢的使用者名稱,一般是使用者輸入的資訊

$insertname = 'testname';

// 建立物件並開啟連線,最後乙個引數是選擇的資料庫名稱

$mysqli = new mysqli($host, $username, $password, $database);

// 編碼轉化為 utf8

if (!$mysqli->set_charset("utf8")) else

if (mysqli_connect_errno())

$selecteddb = $mysqli->select_db($database);//選擇資料庫

if (!$selecteddb)

if ($stmt = $mysqli->prepare("select * from user where name = ?"))

/* close statement */

$stmt->close();

}//新增記錄

if ($insertstmt = $mysqli->prepare("insert into user(name, age) values(?, 18)"))

//更新記錄

if ($updatestmt = $mysqli->prepare("update user set age = 19 where name=?"))

//刪除記錄

$result = $mysqli->query("delete from user where age = 19");

echo $result . "\n";

$mysqli->close();//關閉連線

其結果與第一種相同。

其實mysqli提供了兩種方式鏈結資料庫,一種是物件導向的方式,就是如上的**,另一種是面向過程的方式。可以參考mysqli擴充套件功能概述學習。

第三種是使用pdo的方式去連線資料庫,**如下:

<?php 

$host = 'localhost';

$database = 'test';

$username = 'root';

$password = 'root';

$selectname = 'harry';//要查詢的使用者名稱,一般是使用者輸入的資訊

$insertname = 'testname';

$pdo = new pdo("mysql:host=$host;dbname=$database", $username, $password);//建立乙個pdo物件

$pdo->exec("set names 'utf8'");

$sql = "select * from user where name = ?";

$stmt = $pdo->prepare($sql);

$rs = $stmt->execute(array($selectname));

if ($rs)

}$oldage = 18;

$insert = $pdo->prepare('insert into user(name, age) values(:name, :age)');

$insert->bindparam(':name', $insertname, pdo::param_str);

$insert->bindparam(':age', $oldage, pdo::param_int);

$result = $insert->execute();

echo $result . "\n";

$newage = 19;

$update = $pdo->prepare('update user set age = ? where name = ?');

$update->bindparam(1, $newage, pdo::param_int);

$update->bindparam(2, $insertname, pdo::param_str);

$result = $update->execute();

echo $result . "\n";

$delete = $pdo->prepare('delete from user where age = ?');

$result = $delete->execute(array($newage));

echo $result . "\n";

$pdo = null;//關閉連線

其結果與第一種相同。

PHP的學習 連線MySQL的三種方式

記錄一下php連線mysql的三種方式。先mock一下資料,可以執行一下sql。建立資料庫 create database ifnot exists test 選擇資料庫 use test 建立表 create table ifnot exists user name varchar 50 age ...

php連線mysql學習

mysql connect servername,username,password 引數描述 servername 可選。規定要連線的伺服器。預設是 localhost 3306 username 可選。規定登入所使用的使用者名稱。預設值是擁有伺服器程序的使用者的名稱。password 可選。規定...

php連線 mysql的三種連線方式

php與mysql的連線有三種api介面,分別是 php的mysql擴充套件 php的mysqli擴充套件 php資料物件 pdo 下面針對以上三種連線方式做下總結,以備在不同場景下選出最優方案。php的mysql擴充套件是設計開發允許php應用與mysql資料庫互動的早期擴充套件。mysql擴充套...