当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP操作MySQL数据库的常用方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-10 09:50:32 浏览: 评论:0 

在php中操作mysql数据库的方法有常用的三种,我们使用最多的估计是mysql或mysqli当然还有一个pdo_mysql了,下面整理了一些例子给各位参考.

一.mysql数据库,代码如下:

  1. $conn=mysql_connect("localhost", "root", "123456") or die("数据库连接失败"); 
  2. mysql_select_db("test") or die("选择数据库失败");; 
  3. $sql="select * from user"; 
  4. $data=mysql_query($sql); 
  5. echo '<table border="1" align="center" width="800">' 
  6. while($row=mysql_fetch_assoc($result)){ 
  7. echo '<tr>';//开源代码phpfensi.com 
  8. foreach($row as $col){ 
  9. echo '<td>'.$col.'</td>'; 
  10. } 
  11. echo '</tr>'; 
  12. }; 
  13. echo '</table>'; 
  14. mysql_close(); 

补充,代码如下:

  1.  // 从表中提取信息的sql语句 
  2. $strsql="SELECT * FROM `gbook`"; 
  3. // 执行sql查询 
  4. $result=mysql_db_query($mysql_database, $strsql, $conn); 
  5. // 获取查询结果 
  6. $row=mysql_fetch_row($result); 
  7.  
  8.  
  9. echo '<font face="verdana">'; 
  10. echo '<table border="1" cellpadding="1" cellspacing="2">'; 
  11.  
  12. // 显示字段名称 
  13. echo "</b><tr></b>"; 
  14. for ($i=0; $i<mysql_num_fields($result); $i++) 
  15. { 
  16.   echo '<td bgcolor="#000F00"><b>'. 
  17.   mysql_field_name($result, $i); 
  18.   echo "</b></td></b>"; 
  19. } 
  20. echo "</tr></b>"; 
  21. // 定位到第一条记录 
  22. mysql_data_seek($result, 0); 
  23. // 循环取出记录 
  24. while ($row=mysql_fetch_row($result)) 
  25. { 
  26.   echo "<tr></b>"; 
  27.   for ($i=0; $i<mysql_num_fields($result); $i++ ) 
  28.   { 
  29. echo '<td bgcolor="#00FF00">'; 
  30. echo $row[$i]; 
  31. echo '</td>'; 
  32.   } 
  33.   echo "</tr></b>"; 
  34. } 
  35.     
  36. echo "</table></b>"; 
  37. echo "</font>"; 
  38. // 释放资源 
  39. mysql_free_result($result); 
  40. // 关闭连接 
  41. mysql_close($conn);  

二.pdo_mysql(推荐),连接代码如下:

  1. $dsn = "mysql:host=localhost;dbname=test"; 
  2. $username = 'root'; 
  3. $password = '123456'; 
  4. $options = array( 
  5.    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', 
  6. ); 
  7.  
  8. $pdo = new PDO($dsn, $username, $password, $options); 
  9. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
  10. 增: 

方法1:绑定关联数组

  1. $str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (:username,:password)"); 
  2. $str->execute(array(":username"=>"test", ":password"=>"passwd")); 

方法2:绑定索引数组

  1. $str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (?,?)");//开源代码phpfensi.com 
  2. $str->execute(array("test", "passwd")); 
  3. //删: 
  4.  
  5.  
  6. $str=$pdo->prepare("delete from user where id > 3"); 
  7. $str->execute(); 
  8.  
  9. //改: 
  10.  
  11. $str=$pdo->prepare("UPDATE `user` SET username=:username,password=:password where id=:id"); 
  12. $str->execute(array(":username"=>"test", ":password"=>"passwd", ":id"=>"3")); 

查:

  1. //方法1: 单个取出,循环遍历,返回到数组 
  2.  
  3. $str=$pdo->prepare("select * from user where id > :id  order by id"); 
  4. $str->execute(array(":id"=>2)); 
  5. $str->setFetchMode(PDO::FETCH_ASSOC); 
  6. //共三种:1.PDO::FETCH_BOTH(默认)  2.FETCH_ASSOC  3.FTECH_NUM 
  7.  
  8. while($data=$str->fetch()){ 
  9. print_r($data); 
  10. echo '<br>'; 
  11. } 
  12.  
  13. //方法2: 全部取出,返回到二维数组 
  14.  
  15. $str=$pdo->prepare("select * from user order by fid"); 
  16. $str->execute(); 
  17. $data=$str->fetchAll(PDO::FETCH_NUM); 
  18. print_r($data); 
  19.  
  20. //方法3:单个取出,循环遍历,绑定字段名到变量 
  21.  
  22.  
  23. $str=$pdo->prepare("select fid,username,password from user order by id"); 
  24. $str->execute(); 
  25.  
  26. $str->bindColumn("id",$id); 
  27. $str->bindColumn("username",$username); 
  28. $str->bindColumn(3,$password); 
  29.  
  30. while($str->fetch()){ 
  31. echo "$id | $username | $password <br>"; 
  32. } 
  33. echo "总记录数:".$str->rowCount()."<br>"; 
  34. echo "总字段数:".$str->columnCount()."<br>"; 

二.mysqli,代码如下:

用mysqli链接MYSQL数据库

  1. requery_once("config.ini.php"); 
  2. $mysqliObj = new mysqli($dbhost,$dbuser,$dbpwd,$dbname); 
  3. if(mysqli_connect_errno()){ 
  4.  echo "连接失败".mysqli_connect_error(); 
  5.  exit(); 
  6. } 
  7. $mysqliObj->query("set name $charName"); 

其他操作:

  1. //查询 
  2. //----------------------------------------------------- 
  3. //(单条查询) 
  4. $sql = "drop table  if exists user;"; 
  5. $mysqliObj->query($sql); 
  6.  
  7. //(多条查询) 
  8. $musqliObj->multip_query($sql) 
  9.  
  10. //返回执行$sql受影响的行数() 
  11. ----------------------------------------------------  
  12. if($mysqliObj->query($sql)) 
  13. echo $mysqliObj->affected_rows; 
  14.  
  15. //insert 插入时,返回插入的id (很有用)  
  16. --------------------------------------------------- 
  17.  $num = $mysqliObj->insert_id; 
  18.  
  19. <?php 
  20. $mysqli=new mysqli("localhost", "root", "123456", "test"); 
  21. $sql="select * from user  order by id"; 
  22. $result=$mysqli->query($sql); 
  23. echo '<table align="center" border="1" width="800">'; 
  24. while($row=$result->fetch_assoc()){ 
  25. echo '<tr>'; 
  26. foreach($row as $col){ 
  27. echo '<td>'.$col.'</td>'; 
  28. } 
  29. echo '</tr>'; 
  30. } 
  31. echo '</table>'; 
  32. $mysqli->close(); 
  33. ?> 

三种处理查询结果,代码如下:

  1. $sql = "select * from user"; 
  2.  $result = $mysqli->query($sql); 
  3.  
  4. //(1)fetch_row()   返回索引数组 
  5. fetch_row() 
  6. while(list($id,$name,$pwd)=$result->fetch_row()){ 
  7. echo "id: ".$id." name:".$name."  pwd:".$pwd."<br>"; 
  8.  
  9. } 
  10. //(2)fetch_assoc()  返回关联数组 
  11. fetch_assoc() 
  12. while ($row = $result->fetch_assoc()){ 
  13.  echo "id:".$row["userId"]." name:".$row["userName"]."  pwd:".$row["password"]."<br>"; 
  14. } 
  15.  
  16. //(3)fetch_object()返回对象 
  17. while($row = $result->fetch_object()){ 
  18. echo "id:".$row->userId." name:".$row->uerName."  pwd:".$row->password."<br>"; 
  19.  
  20. }

Tags: PHP操作MySQL MySQL数据库

分享到: