PHP和MySQL被称为黄金搭档,几乎所有的基于PHP应用的项目都在使用MySQL,在PHP中,连接MySQL数据库十分简单,简单到只需要一个函数函数即可:

mysql_connect($host,$username,$password)

它有三个参数,分别是数据库主机名,数据库用户名,数据库用户密码。



如果我们的数据库在本地,那么数据库主机名可写为127.0.0.1。例如,我们可以使用这个方法连接数据库:

$con=mysql_connect('127.0.0.1','user','123456') or die("服务器连接失败!");  

mysql_select_db('test',$con);  

mysql_query("set names 'gb2312'");  

三行代码就实现了连接MySQL数据库。在上面例子中,mysql_select_db()表示选择数据库,上例表示连接test数据库,其中set names 'gb2312'表示设置数据库读取的编码为gb2312。

如果数据库的用户名和密码错误,页面上自动会提示“服务器连接失败”。



一般的,我们在做OOP的开发当中,习惯上把PHP连接数据库的部分,写在一个单独的类中。例如:

class cls_mysql  

{  

protected $link_id;  

   public function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $charset = 'utf8')//构造函数  

   {  

       if(!($this->link_id = mysql_connect($dbhost, $dbuser, $dbpw)))  

       {  

           $this->ErrorMsg("Can't pConnect MySQL Server($dbhost)!");  

       }  

       mysql_query("SET NAMES " . $charset, $this->link_id);//设置编码  

       if ($dbname)  

       {  

           if (mysql_select_db($dbname, $this->link_id) === false )  

           {  

               $this->ErrorMsg("Can't select MySQL database($dbname)!");  

               return false;  

           }  

           else  

           {  

               return true;  

           }  

       }  

   }  

   public function select_database($dbname)//选择数据库  

   {  

       return mysql_select_db($dbname, $this->link_id);  

   }  

   public function fetch_array($query, $result_type = MYSQL_ASSOC)//得到遍历后的数据,是一个数组形式  

   {  

       return mysql_fetch_array($query, $result_type);  

   }  

   public function query($sql)//执行查询  

   {  

       return mysql_query($sql, $this->link_id);  

   }  

   public function affected_rows()//得到影响的记录集数  

   {  

       return mysql_affected_rows($this->link_id);  

   }  

   public function num_rows($query)//获得查询的记录数  

   {  

       return mysql_num_rows($query);  

   }  

   public function insert_id()  

   {  

       return mysql_insert_id($this->link_id);//获得插入的id  

   }  

   public function selectLimit($sql, $num, $start = 0)  

   {  

       if ($start == 0)  

       {  

           $sql .= ' LIMIT ' . $num;  

       }  

       else  

       {  

           $sql .= ' LIMIT ' . $start . ', ' . $num;  

       }  

       return $this->query($sql);  

   }  

   public function getOne($sql, $limited = false)//获取一条记录  

   {  

       if ($limited == true)  

       {  

           $sql = trim($sql . ' LIMIT 1');  

       }  

       $res = $this->query($sql);  

       if ($res !== false)  

       {  

           $row = mysql_fetch_row($res);  

           return $row[0];  

       }  

       else  

       {  

           return false;  

       }  

   }  

   public function getrow($sql)  

   {  

       $res = $this->query($sql);  

       if ($res !== false)  

       {  

           return mysql_fetch_assoc($res);  

       }  

       else  

       {  

           return false;  

       }  

   }  

   public function getAll($sql)  

   {  

       $res = $this->query($sql);  

       if ($res !== false)  

       {  

           $arr = array();  

           while ($row = mysql_fetch_assoc($res))  

           {  

               $arr[] = $row;  

           }  

           return $arr;  

       }  

       else  

       {  

           return false;  

       }  

   }  

   function ErrorMsg($message = '', $sql = '')  

   {  

       if ($message)  

       {  

           echo "error info: $message ";  

       }  

       else  

       {  

           echo "MySQL server error report:";  

           print_r($this->error_message);  

       }  

       exit;  

   }      

}