A-A+

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

2017年10月14日 PHP技术文章 暂无评论 阅读 0 views 次

接触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则是对应用户的密码.由于我的数据库就在本机上所以连接时我使用以下语句.

连接代码如下:

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

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

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

$con = mysql_connect("loaclhost","root","");

$con = mysql_close($con);

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

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

$con = mysql_connect("localhost","root","");

mysql_create_db("guestbook",$con);

mysql_close($con);

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

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

$con = mysql_connect("localhost","root","");

mysql_query("Create DATABASE guestbook",$con);

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 
  108. n"$msg);   
  109.             printf("MySql Error: %s 
  110. n", mysql_error());   
  111.         }else   
  112.             echo ""//自定一个出错提示文件   
  113.         return false;   
  114.     }   
  115. }   
  116. switch ($db->dbType) {   
  117.     case 1:   
  118.         @mysql_close();   
  119.         break;   
  120.     case 2:   
  121.         break;   
  122. }   
  123. $db = new Database();   
  124. ?>   
标签:

给我留言