Guest User

Untitled

a guest
Apr 12th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. <?php
  2. //php数据库编程--有三种方式来操作MySQL数据库
  3. # 1 mysql扩展库
  4. # 2 MySQLi扩展库
  5. # 3 PDO
  6.  
  7. //使用php的MySQL扩展库完成对mysql的操作
  8. # php.ini文件中取配置mysql扩展库
  9. # extension=php_mysql.dll
  10. // echo phpinfo(); #查询php配置
  11.  
  12. // 2 编写mysql
  13. //步骤如下:
  14. # 1 获取连接
  15. # 2 选择数据库
  16. # 3 设置操作编码(可以有)
  17. # 4 发送数据库SQL语句(ddl数据定义语言,dml数据操作语言,dql数据查询语言select,dtl数据事务语句rollback,commit)
  18. # 5 接受返回的结果,并处理
  19. # 6 释放资源,关闭连接
  20.  
  21. # 1
  22. $conn = mysql_connect('127.0.0.1','root','');
  23. /*if(!$conn){
  24. die('fail'.mysql_error());//返回上一个文本错误信息
  25. }else{
  26. echo "good";
  27. }*/
  28.  
  29. # 2
  30. mysql_select_db('user1');
  31.  
  32. # 3
  33. mysql_query('set name utf8');//保证php程序是按照utf-8码操作的
  34. # 4
  35. $sql = "select * from user1";
  36. $res = mysql_query($sql,$conn);//表示结果集,资源数据类型
  37. #var_dump($res); //resourse()
  38.  
  39. # 5
  40. while($row = mysql_fetch_row($res)){//mysql_fetch_row()会一次取出$res结果集的下一行数据,赋值给$row
  41. #第一种取法
  42. //echo '<br>$row[0]--$row[1]--$row[2]';
  43. //echo "<br>";
  44. //var_dump($row);
  45. #第二种取法
  46. foreach ($row as $key => $value) {
  47. echo "$key -- $value";
  48. }
  49. echo '<br>';
  50. }
  51.  
  52. # 6
  53. mysql_free_result($res); //释放结果集资源,必须有
  54. mysql_close($conn); //关闭资源,可有可无
  55.  
  56. //细节
  57. # 1 使用完mysql结果集后,一定要释放资源
  58. # 2 mysql_close();如果没有的话,系统也会自动关闭
  59. # 3 从$res获取行的时候,处理mysql_fetch_row($res),还有三个方法
  60. #mysql_fetch_row($res)返回索引数组
  61. #mysql_fetch_assoc($res), 返回一个关联数组
  62. #mysql_fetch_array($res),返回索引数组和关联数组,建议不要使用
  63. #mysql_fetch_object($res),把一行数据当做一个对象返回,建议不要使用
  64. # 4 mysql_query($sql,$conn)执行结果;
  65. #如果执行的是dml语句,则返回bool
  66. #如果执行的是dql语句,返回查询结果mysql result
  67.  
  68. // 对数据库进行dml(crud)操作
  69. $conn = mysql_connect('localhost','root','');
  70. mysql_select_db('user1',$conn);
  71. mysql_query('set names utf8');
  72. $sql = 'insert into user1("name","password","email","age")values("mia",md5("123456"),"",2)';
  73. $res = mysql_query($sql,$conn);
  74. if (!$res) {
  75. die("fail".mysql_error());
  76. }
  77.  
  78. if (mysql_affected_rows($conn)>0) { //显示影响行数
  79. echo "good";
  80. }else{
  81. echo "no affect rows";
  82. }
  83. mysql_free_result($res);
  84. mysql_close($conn);
  85. ?>
  86.  
  87. <?php
  88. //从上面的文件可以看出,代码复用性和可维护性不高,通常是将对数据库的操作封装成一个工具类 SqlTool
  89. class SqlTool {
  90. private $conn;
  91. private $host = 'localhost';
  92. private $user = 'root';
  93. private $password = '';
  94. private $db = 'user1';
  95.  
  96. public function __construct(){
  97. $this->conn = mysql_connect($this->host,$this->user,$this->password);
  98. if (!$this->conn) {
  99. die('fail'.mysql_error());
  100. }
  101. mysql_select_db($this->db,$this->conn);
  102. mysql_query('set names utf8');
  103. }
  104.  
  105. public function execute_dql($sql){
  106. $res = mysql_query($sql) or die(mysql_error());
  107. return $res;
  108. }
  109.  
  110. public function execute_dml($sql){
  111. $res = mysql_query($sql,$this->conn);
  112. if (!$res) {
  113. return 0; //失败
  114. }else{
  115. if (mysql_affected_rows($this->conn)>0) {
  116. return 1;//表示成功
  117. }else{
  118. return 2;//表示没有影响行数
  119. }
  120. }
  121. }
  122. }
  123.  
  124. ?>
  125.  
  126. <?php
  127. //mysql其他有用函数
  128.  
  129. //编写一个函数,可以接受一个表名,然后把表头和记录显示在网页上
  130. function show_table_info($table_name){
  131. $conn = mysql_connect('localhost','host','')
  132. mysql_select_db('user1');
  133. mysql_query('set names utf8');
  134. $sql = "select * from user1";
  135. $res = mysql_query($sql,$conn);
  136.  
  137. while($field_info == mysql_fetch_field($res)){
  138. echo "<br>".$field_info->name;
  139. }
  140.  
  141. //显示总共有的行数和列数
  142. $rows = mysql_affected_rows($conn);
  143. $columns = mysql_num_fields($res);
  144. echo $rows."-----".$columns;
  145.  
  146. echo "<table><tr>";
  147. //表头
  148. for ($i=0; $i <$columns ; $i++) {
  149. $field_name = mysql_field_name($res, $i);
  150. echo "<th>".$field_name."</th>";
  151.  
  152. }
  153. echo "</tr>";
  154. while ($row = mysql_fetch_row($res)) {
  155. echo "<tr>";
  156. for ($i=0; $i < $columns; $i++) {
  157. echo "<td>".$row[$i]."</td>";
  158. }
  159. echo "</tr>"
  160. }
  161. echo "</table>";
  162. }
  163. show_table_info('user1');
  164. ?>
Add Comment
Please, Sign In to add comment