用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

一些简单的PHP连接数据库例子详解

时间:2015-01-23  来源:西部数据  作者:西部数据

连接MySQL数据库的两种方法:

(1)利用PHP的数据库函数连接 

此方式是最常用的一种方式,这里主要用到四个数据库函数:

mysql_connect () 建立与MySQL服务器的连接。 

mysql_select_db ():选择MySQL服务器中的数据库供以后的数据查询操作query处理。 

mysql_query ():送出query字符串以帮助MySQL做相关的处理或执行。 

mysql_fetch_row ():用来将查询结果result单行移到数组变量中,数组的索引是数字 

索引,第一个索引值是0。

(2)通过ODBC连接 

PHP通过ODBC连接MySQL数据库主要用到四个函数:

Odbc_connect ():用来同ODBC数据源建立连接.

Odbc_do ():用来在建立连接之后执行数据库查询.

Odbc_result():用于取得当前记录行中某个字段的值.

Odbc_fetch_row ():用来把查询结果保存到数组,每个数组元素对应一条记录.

我们先来看PHP的数据库函数连接,方法实例,连接到一个 MySQL 数据库,在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接,在 PHP 中,这个任务通过 mysql_connect() 函数完成.

语法:mysql_connect(servername,username,password);

参数 描述 

servername 可选。规定要连接的服务器。默认是 "localhost:3306"。 

username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。 

password 可选。规定登录所用的密码。默认是 ""。

PHP实例代码如下:

  1. <?php 
  2. $con = mysql_connect("localhost","root",""); 
  3. if (!$con
  4.   { 
  5.   die('Could not connect: ' . mysql_error()); 
  6.   } 
  7. mysql_close($con); 
  8. ?> 

面向对象mysqli,代码如下:

  1. <?php 
  2. $mysqli = new mysqli('localhost','root','','volunteer'); 
  3. if (mysqli_connect_errno()){ 
  4.  die('Unable to connect!'). mysqli_connect_error(); 
  5. ?> 

pdo连接mysql,代码如下:

  1. <?php 
  2. $db = new PDO('mysql:host=localhost;dbname=test''root'''); 
  3. try { 
  4.  foreach ($db->query('select * from user'as $row){ 
  5.   print_r($row); 
  6.  } 
  7.  $db = null;  //关闭数据库 
  8. } catch (PDOException $e) { 
  9.  echo $e->getMessage(); 
  10. ?> 

然后我们还可以使用ODBC连接数据库,代码如下:

  1. <?php 
  2. require_once './adodb5/adodb.inc.php'
  3. $conn = &ADONewConnection('mysql'); 
  4. $conn->connect('localhost','root','','test'); 
  5. $conn->Execute("set names utf8"); 
  6. $res = $conn->Execute("select * from user"); 
  7. if (!$res){ 
  8.  echo $conn->ErrorMsg(); 
  9. }else
  10.  var_dump($res); 
  11. ?> 

mysql数据连接类,代码如下:

  1. <?php 
  2. //------------------------------------------------------------------------------------------  
  3. // ※Database()                   构造函数,数据库初始参数  
  4. // ※Select()                     查询 
  5. // ※GetRows()                    返回查询的记录总数 
  6. // ※Insert()                     插入记录 
  7. // ※Update()                     更新 
  8. // ※Delete()                     删除 
  9. // ※Halt()                       中断并显示错误信息*/ 
  10. //------------------------------------------------------------------------------------------  
  11. define("DATABASETYPE""1");       //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc 
  12. define("SERVER""localhost");     //Host name or IP address of the database server 
  13. define("DATABASE""dbName");   //要连接的数据库名 
  14. define("USER""tableName");     //用于连接数据库的用户名 
  15. define("PASSWORD""paswd");    //用于连接数据库的密码  
  16.  
  17. class Database { 
  18.     var $dbLink;                      //连接句柄  
  19.     var $result;                      //查询句柄  
  20.     var $insId;                       //Insert()成功返回AUTO_INCREMENT列的值 
  21.     var $rows;                        //返回数据数组 
  22.     var $numRows;                     //返回数据数目 
  23.     var $dbHost$dbUser$userPassword$database
  24.     var $dbType = DATABASETYPE; 
  25.     var $msgFlag = "yes";            //yes:show the Mysql message ; no: die by show "Halted." 
  26.  
  27.     function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) { 
  28.         switch ($this->dbType) { 
  29.             case 1: 
  30.                 $this->dbLink = @mysql_pconnect($dbHost$dbUser$userPassword); // or die("Can't Connect to Remote Host!"); 
  31.                 @mysql_select_db($database$this->dbLink); // or die ("Can't Connect to Remote Host!"); 
  32.                 break
  33.             case 2: 
  34.                 break
  35.         } 
  36.         return true; 
  37.     } 
  38.  
  39.     /* SQL:Select() 返回为false无结果 */ 
  40.  
  41.     function Select($table$columns$condition = 1) { 
  42.         $sql = "select $columns from $table where $condition "
  43.         $this->result = @mysql_query($sql$this->dbLink); 
  44.         unset($this->rows); 
  45.         if ($this->result) { 
  46.             $i = 0; 
  47.             if (!($this->rows = array("$i" => @mysql_fetch_array($this->result)))) 
  48.                 return false; 
  49.             if (($this->numRows = @mysql_num_rows($this->result)) == 0) 
  50.                 return false; 
  51.             while ($tempRows = @mysql_fetch_array($this->result)) { 
  52.                 array_push($this->rows, $tempRows); 
  53.             } 
  54.         } else { 
  55.             $this->Halt($sql); 
  56.             return false; 
  57.         } 
  58.         return true; 
  59.     } 
  60.  
  61.     /* SQL:GetRows() 返回查询的记录总数 */ 
  62.  
  63.     function GetRows($table$condition = 1) { 
  64.         $sql = "select count(1) as count from $table where $condition"
  65.         $this->result = @mysql_query($sql$this->dbLink); 
  66.         if ($this->result) { 
  67.             $temp = @mysql_fetch_array($this->result); 
  68.             $this->numRows = $temp[count]; 
  69.         } else { 
  70.             $this->Halt($sql); 
  71.             return false; 
  72.         } 
  73.         return $this->numRows; 
  74.     } 
  75.  
  76.     /* SQL:Insert() */ 
  77.  
  78.     function Insert($table$columns$values) { 
  79.         $sql = "insert into $table ($columns) values ($values)"
  80.         $this->result = @mysql_query($sql$this->dbLink); 
  81.         if ($this->result) 
  82.             $this->insId = @mysql_insert_id($this->dbLink); 
  83.         else { 
  84.             $this->Halt($sql); 
  85.             return false; 
  86.         } 
  87.         return true; 
  88.     } 
  89.  
  90.     /* SQL:Update() */ 
  91.  
  92.     function Update($table$setings$condition) { 
  93.         $sql = "update $table set $setings where $condition"
  94.         $this->result = @mysql_query($sql$this->dbLink); 
  95.         if ($this->result) 
  96.             $this->numRows = @mysql_affected_rows($this->result); 
  97.         else { 
  98.             $this->Halt($sql); 
  99.             return false; 
  100.         } 
  101.         return true; 
  102.     } 
  103.  
  104.     /* SQL:Delete */ 
  105.  
  106.     function Delete($table$condition) { 
  107.         $sql = "delete from $table where $condition"
  108.         $this->result = @mysql_query($sql$this->dbLink); 
  109.         if ($this->result) 
  110.             $this->numRows = @mysql_affected_rows($this->result); 
  111.         else { 
  112.             $this->Halt($sql); 
  113.             return false; 
  114.         } 
  115.         return true; 
  116.     } 
  117.  
  118.     /* Halt():error message */ 
  119.  
  120.     function Halt($msg) { 
  121.         if ($this->msgFlag == "yes") { 
  122.             printf("<b>Database Query Error:</b> %s<br>n"$msg); 
  123.             printf("<b>MySql Error:</b> %s<br>n", mysql_error()); 
  124.         }else 
  125.             echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'>"//自定一个出错提示文件 
  126.         return false;//开源代码phpfensi.com 
  127.     } 
  128.  
  129. switch ($db->dbType) { 
  130.     case 1: 
  131.         @mysql_close(); 
  132.         break
  133.     case 2: 
  134.         break
  135. $db = new Database(); 
  136. ?> 

友情提示:如果出现连接mysql数据库中文乱码我们可以在连接数据库查询之前加上mysql_query("set names utf8"); 如果你是gbk就使用gbk编编码了.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门