当前位置:首页 > Mysql教程 > 列表

PHP学习笔记之连接mysql数据库

发布:smiling 来源: PHP粉丝网  添加日期:2014-02-24 10:24:19 浏览: 评论:0 

接触PHP已经有一段时间了,今天写一篇关于PHP连接MYSQL数据库的文章,也算是自己对学习PHP与数据库的一点总结.如果文章出现错误,希望各位包涵、指出.

言归正传,对于PHP来讲,它是默认支持MYSQL的,也就是说我们不必再去手动设置ODBC来使用MYSQL了,我们所需要做的设置就是在php.ini中引入MYSQL插件.首先找到你的php.ini,编辑它,将extension = php_mysql.dll前的分号(“;”)去掉即可.这样,我们的php就可以使用MYSQL了.

接下来我们连接mysql,mysql_connect(servername:port,username,password)就是用于连接mysql的函数,其中servername:port参数就是数据库地址以及数据库端口(默认情况下port参数为3306);username即是登陆数据库所使用的用户名,password则是对应用户的密码.由于我的数据库就在本机上所以连接时我使用以下语句.

连接代码如下:

  1. $con = mysql_connect("localhost","root","");  //$con可理解为连接号 

当然我们不能让mysql一直处于连接状态,对于小型应用来说或许这不算问题,但对于大型web应用来讲这是很浪费资源的,所以用完数据库连接之后我们要关掉它.这个任务我们交给mysql_close(连接号)来完成.

开启和关闭数据库连接实例代码如下:

  1. $con = mysql_connect("loaclhost","root","");    
  2. $con = mysql_close($con);   

弄明白了如何连接和断开数据库,接下来就是在mysql中创建数据库,这听起来很拗口,因为同一台mysql服务器中可以允许多个数据库的存在.这里我们有两种方法来建立数据库,法一使用mysql_create_db()函数,但不建议大家使用这种方法.

创建数据库实例代码如下:

  1. $con = mysql_connect("localhost","root","");    
  2. mysql_create_db("guestbook",$con);    
  3. mysql_close($con);   

法二,我们直接采用mysql_query()函数来执行sql语句.Create DATABASE 就是用于创建数据库的sql语句,例如Create DATABASE test,就是创建一个名为test的数据库.

创建数据库实例代码如下:

  1. $con = mysql_connect("localhost","root","");      
  2. mysql_query("Create DATABASE guestbook",$con);      
  3. mysql_close($con);    

建完数据库,我们要向数据库中添加数据表,同样是采用mysql_query()函数来执行sql语句,但不同的是之前我们要使用mysql_select_db()函数来选择我们操作的数据库.

实例代码如下:

  1. $con = mysql_connect("localhost","root","");        
  2.  
  3. mysql_query("Create DATABASE guestbook",$con);    
  4. mysql_select_db("guestbook",$con);    
  5. mysql_query("Create TABLE users(username varchar(15),   
  6. password varchar(15))");        
  7. mysql_close($con);    
  8. /*  建表语句: Create TABLE 表明(字段名_1 字段数据类型_1,字段名_2 字段数据类型_2,......,字段名_n 字段数据类型_n)      */  

在数据库中建立好表、字段等数据数据关系之后,就差实实在在的数据了.同上,使用mysql_query()函数执行添加数据的sql语句,Insert INTO 表名 (字段名_1,字段名_2,......,字段名_n) VALUES (数据_1,数据_2,......,数据_n).

实例代码如下:

  1. $con = mysql_connect("localhost","root","");          
  2. mysql_query("Create DATABASE guestbook",$con);      
  3. mysql_select_db("guestbook",$con);      
  4. mysql_query("Create TABLE users(username varchar(15),    
  5. password varchar(15))");      
  6. mysql_query("Insert INTO users (username,password) VALUES ('Ku_Andrew','123456')");        
  7. mysql_close($con);    

现在,我们的数据库中已经有了数据,接下来我们使用select语句来进去查询.

实例代码如下:

  1. $con = mysql_connect("localhost","root","");          
  2. mysql_query("Create DATABASE guestbook",$con);      
  3. mysql_select_db("guestbook",$con);      
  4. mysql_query("Create TABLE users(username varchar(15),    
  5. password varchar(15))");     
  6. $select = mysql_query("select * from users");    
  7. while ($row = mysql_fetch_array($select);)    
  8. {    
  9.     echo $row['username'];    
  10.     echo $row['password'];    
  11. }    
  12. mysql_close($con);  

这样,通过while循环我们就可以把users表中所有的数据全部查询出来,上面这样做不好重复利了,下面我们可以做成数据库连接类.

实例代码如下:

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

Tags: PHP连接 mysql

分享到: