PHP连接数据库的方式
1,旧的方式 - mysql(面向过程)
1 <?php 2 //定义连接参数 3 $host = 'localhost'; 4 $user = 'root'; 5 $password = ''; 6 $dbname = 'databasename'; 7 8 //第一步开始连接到数据库主机地址 9 $con = @mysql_connect($host, $user, $password); #错误抑制符在产生错误的时候不提示错误 10 //如果没有连接成功,提示错误 11 if(!$con){ 12 die("Could not connect to the server: \n" . mysql_error()); 13 } 14 15 //第二步开始选择数据库 16 $select_db = mysql_select_db($dbname); 17 #开始判定 18 if(!$select_db){ 19 die("Could not select the database: \n" . $dbname . mysql_error()); 20 } 21 22 //第三步开始查询数据库 23 $sql = "select * from table"; #定义sql语句 24 $res = mysql_query($sql); #利用mysql_query方法查询结果并存储在$res中 25 //开始判定是否取得结果 26 if(!$res){ 27 die("Could not get the results: \n" . mysql_error()); 28 } 29 30 //第四步在浏览器显示结果 31 while($row = mysql_fetch_assoc($res)){ 32 print_r($row); 33 } 34 ?>
2,新的方式myslqi(面向过程)
1 <?php 2 //定义连接参数 3 $host = 'localhost'; 4 $user = 'root'; 5 $password = ''; 6 $dbname = 'databasename'; 7 8 //开始连接数据库 9 $conn = mysqli_connect($host, $user, $password, $dbname); 10 #判定是否连接成功 11 if(mysqli_connect_errno($conn)){ 12 die("Could not connect to the database: \n" . mysqli_connect_error()); 13 } 14 15 //设置查询数据库编码格式 16 mysqli_query($conn, "set names utf8"); #设置数据库编码格式,注意utf8没有-; 17 18 //定义查询语句 19 $sql = "select * from table"; 20 //开始查询 21 $query = mysqli_query($conn, $sql); 22 23 //获取结果 24 while($row = mysqli_fetch_array($query)){ 25 print_r($row); 26 } 27 28 //释放结果 29 mysqli_free_result($query); 30 //关闭连接 31 mysqli_close($conn); 32 ?>
3,个人喜欢的方式,mysqli(面向对象)
1 <?php 2 //定义连接参数 3 $host = 'localhost'; 4 $user = 'root'; 5 $password = ''; 6 $dbname = 'databasename'; 7 8 //开始连接数据库 9 $conn = new mysqli($host, $user, $password, $dbname); 10 /* 11 也可以这样连接 12 $conn = new mysqli(); 13 $conn->connect($host, $user, $password, $dbname); 14 */ 15 //开始判定是否连接 16 if($conn->connect_errno){ 17 die("Could not connect to the databse: \n" . $conn->connect_error); 18 } 19 20 //定义sql语句 21 $sql = "select * from table"; 22 //调用对象方法query进行查询 23 $query = $conn->query($sql); 24 25 //开始返回结果并打印在浏览器上 26 while($row = $query->fetch_array()){ 27 print_r($row); 28 } 29 30 //释放结果 31 $query->free_result(); 32 //关闭连接 33 $conn->close(); 34 ?>
4,利用mysql做一个类来查询数据库
1 <?php 2 class databaseConnect{ 3 //初始化连接数据库的必要参数 4 private $host = 'localhost'; 5 private $user = 'root'; 6 private $password = ''; 7 private $dbname = 'databasename'; 8 9 //类被实例化后直接显示结果 10 public function __construct(){ 11 $this->connect_to_server(); 12 $this->select_the_database(); 13 $this->get_results(); 14 } 15 16 //用private关键词封装数据库连接方法 17 private function connect_to_server(){ 18 $con = @mysql_connect($this->host, $this->user, $this->password); 19 if(!$con){ 20 die("Could not connect to the server: \n" . mysql_error()); 21 } 22 } 23 24 //用private关键词封装数据库选择方法 25 private function select_the_database(){ 26 $select_db = mysql_select_db($this->dbname); 27 if(!$select_db){ 28 die("Could not select the database: \n" . $this->dbname . " " . mysql_error()); 29 } 30 } 31 32 //用private关键字封装数据库查询方法 33 private function query_db(){ 34 $sql = "select * from table"; 35 $query = @mysql_query($sql); 36 if(!$query){ 37 die("Could not get the query: \n" . mysql_error()); 38 } 39 return $query; #将结果返回到调用的代码行 40 } 41 42 //用private关键字封装结果方法 43 private function get_results(){ 44 $res = $this->query_db(); #取得数据库查询方法里的结果 45 $row = mysql_fetch_assoc($res); 46 print_r($row); 47 } 48 } 49 50 $s = new databaseConnect(); #实例化类并赋值给$s得到一个databaseConnect的对象,首先调用的方法就是__construct();得到结果在浏览器 51 52 var_dump($s); 53 54 ?>
PHP连接数据还有PDO。