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

PHP7原生MySQL数据库操作实现代码

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-16 14:54:01 浏览: 评论:0 

php7已经没有mysql这个扩展了,好多贴还是按照以前的方法讲,让我这个新手来回找了好多遍都没找到mysql,php7用后面两个链接数据库,千万不要傻傻去找也不要去来回拷贝什么dll之类的。

php7中mysql的连接与使用与PHP5中大不相同

PHP5中mysql_connect()等函数大多被PHP7中类的成员函数所代替,PHP5中连接mysql是过程性的,而PHP7中强调了类的使用与面向对象的方法

  1. $user = new mysqli(); 
  2.  
  3. //Connect to mysql 
  4. $user->connect("localhost""root""q721@Ms67""Student"); 

mysql的连接被mysqli类所替代

  1. //Search in mysql 
  2. $query = 'SELECT * FROM users'
  3. //Use a variable to save result 
  4. $result = $user->query($query); 

查询语句也变成了类的成员函数

连接到 MySQL服务器

mysqli_connect(host, username, password [,dbname] [,port]);

- 参数:

host:MySQL服务器。可以包含端口号,默认值为“localhost:3306”

username:用户名。默认值是服务器进程所有者的用户名;

password:密码。

dbname:数据库名称。

port:MySQL服务器的端口号,默认为3306。

- 返回值:如果连接成功,则返回 mysqli 连接对象。如果失败,则返回 false。

实例代码一

  1. <?php 
  2.  $mysqli = new mysqli("localhost""root""password""testgame"); 
  3.  if(!$mysqli) { 
  4.   echo"database error"
  5.  }else
  6.   echo"php env successful"
  7.  } 
  8.  $mysqli->close(); 
  9. ?> 

localhost 意思是本地主机,如果你是在自己电脑上的话,这项就不用改了

root是mysql的用户名,如果你是默认的没有修改,也不用管,直接copy

password 这事mysql的密码,如果你没有试着的话,直接写空的就行,""这样哦

代码二

  1. <?php 
  2. /* Connect to a MySQL server 连接数据库服务器 */ 
  3. $link = mysqli_connect( 
  4. 'localhost'/* The host to connect to 连接MySQL地址 */ 
  5. 'root'/* The user to connect as 连接MySQL用户名 */ 
  6. 'root'/* The password to use 连接MySQL密码 */ 
  7. 'lucax_database'); /* The default database to query 连接数据库名称*/ 
  8.  
  9. if (!$link) { 
  10. printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error()); 
  11. exit
  12. }else 
  13. echo '数据库连接上了!'
  14.  
  15. /* Close the connection 关闭连接*/ 
  16. mysqli_close($link); 
  17. ?> 

代码三

  1. <?php 
  2. $servername = "localhost"
  3. $username = "root"
  4. $password = "root"
  5.  
  6. $dbname = "myDB"
  7.  
  8. // 创建连接 
  9.  
  10. # Tip: 如果你使用其他端口(默认为3306),为数据库参数添加空字符串,如: new mysqli("localhost""username""password""", port) 
  11. $conn = new mysqli($servername$username$password,$dbname); 
  12.  
  13. // 检测连接 
  14. if ($conn->connect_error) { 
  15. die("连接失败: " . $conn->connect_error); 
  16. echo "连接成功"
  17.  
  18. $conn->close(); 
  19. ?> 

选择当前数据库

mysqli_select_db(mysqliLink, database)

- 描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程

- 返回值:如果成功返回TRUE,失败则返回FALSE

设置客户端字符集

mysqli_set_charset(mysqliLink, charset)

- 描述:设置默认字符编码

- 返回:成功时返回 TRUE, 或者在失败时返回 FALSE。

发送一条 MySQL 查询

mysqli_query(mysqliLink , queryStr)

- 参数:

query是查询字符串;

link是创建的活动的数据库连接;

- 说明:mysqli_query() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysqli_query()在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。

- 注意:查询字符串不应以分号结束,和命令行模式下有区别。

从结果集中取得一行作为关联数组,或数字数组,或二者兼有

mysqli_fetch_array ( mysqliResult [, resultType] )

- 参数:resultType是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)

- 返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。

- 注意:本函数返回的字段名区分大小写。

从结果集中取得所有行作为关联数组、枚举数组、或二者兼有

mysqli_fetch_all(mysqliResult [, resultType ])

- 参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)

- 返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。

- 注意:本函数返回的字段名区分大小写。

取得结果集中行的数目

mysqli_num_rows(mysqliResult)

- 注意:此命令仅对 SELECT 语句有效。

从结果集中取得一行作为关联数组

array mysqli_fetch_assoc(mysqliResult)

- 返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE;

- 注意:此函数返回的字段名大小写敏感。

取得前一次 MySQL 操作所影响的记录行数

mysqli_affected_rows ( mysqliLink )

- 说明:取得最近一次与 $link 关联的 SELECT、INSERT、UPDATE 或 DELETE 查询所影响的记录行数。

- 注意:如果最近一次查询失败,函数返回-1。当使用UPDATE查询,MySQL不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回。

释放与结果集相关联的内存

mysqli_free_result(mysqliResult)

- 参数:mysqliResult为结果集对象。

返回上一个 MySQL 连接产生的文本错误信息

mysqli_connect_error()

- 参数:没有参数

php7创建数据库:

方法一:

  1. $sql = "CREATE DATABASE myDB3"
  2. if (mysqli_query($conn$sql)) { 
  3. echo "数据库创建成功"
  4. else { 
  5. echo "Error creating database: " . mysqli_error($conn); 

方法二:

  1. // 检测连接 
  2. if ($conn->connect_error) { 
  3.   die("连接失败: " . $conn->connect_error); 
  4. echo "连接成功"
  5.  
  6. $sql = "CREATE DATABASE myDB2"
  7. if ($conn->query($sql) === TRUE) { 
  8.   echo "数据库创建成功"
  9. else { 
  10.   echo "Error creating database: " . $conn->error; 

创建表的方法:

方法一:

  1. // 使用 sql 创建数据表 
  2. $sql = "CREATE TABLE MyGuests ( 
  3. id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
  4. firstname VARCHAR(30) NOT NULL, 
  5. lastname VARCHAR(30) NOT NULL, 
  6. email VARCHAR(50), 
  7. reg_date TIMESTAMP 
  8. )"; 
  9.  
  10. if (mysqli_query($conn$sql)) { 
  11. echo "数据表 MyGuests 创建成功"
  12. else { 
  13. echo "创建数据表错误: " . mysqli_error($conn); 

方法二:

  1. // 使用 sql 创建数据表 
  2. $sql = "CREATE TABLE MyGuests2 ( 
  3. id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
  4. firstname VARCHAR(30) NOT NULL, 
  5. lastname VARCHAR(30) NOT NULL, 
  6. email VARCHAR(50), 
  7. reg_date TIMESTAMP 
  8. )"; 
  9.  
  10. if ($conn->query($sql) === TRUE) { 
  11. echo "Table MyGuests created successfully"
  12. else { 
  13. echo "创建数据表错误: " . $conn->error; 

插入数据的方法:

方法一:

  1. $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
  2. VALUES ('John''Doe''john@example.com')"; 
  3.  
  4. if (mysqli_query($conn$sql)) { 
  5. echo "新记录插入成功"
  6. else { 
  7. echo "Error: " . $sql . "<br>" . mysqli_error($conn); 

方法二:

  1. $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
  2. VALUES ('John''Doe''john@example.com')"; 
  3.  
  4. if ($conn->query($sql) === TRUE) { 
  5. echo "新记录插入成功"
  6. else { 
  7. echo "Error: " . $sql . "<br>" . $conn->error; 

插入多条数据的方法:

方法一:

  1. $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
  2. VALUES ('John''Doe''john@example.com');"; 
  3. $sql .= "INSERT INTO MyGuests (firstname, lastname, email) 
  4. VALUES ('Mary''Moe''mary@example.com');"; 
  5. $sql .= "INSERT INTO MyGuests (firstname, lastname, email) 
  6. VALUES ('Julie''Dooley''julie@example.com')"; 
  7.  
  8. if (mysqli_multi_query($conn$sql)) { 
  9. echo "新记录插入成功"
  10. else { 
  11. echo "Error: " . $sql . "<br>" . mysqli_error($conn); 

方法二:

  1. $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
  2. VALUES ('22''Doe''john@example.com');"; 
  3. $sql .= "INSERT INTO MyGuests (firstname, lastname, email) 
  4. VALUES ('22''Moe''mary@example.com');"; 
  5. $sql .= "INSERT INTO MyGuests (firstname, lastname, email) 
  6. VALUES ('22''Dooley''julie@example.com')"; 
  7.  
  8. if ($conn->multi_query($sql) === TRUE) { 
  9. echo "新记录插入成功"
  10. else { 
  11. echo "Error: " . $sql . "<br>" . $conn->error; 

查询数据库的方法:

方法一:

  1. $sql = "SELECT id, firstname, lastname FROM MyGuests"
  2. $result = mysqli_query($conn$sql); 
  3.  
  4. if (mysqli_num_rows($result) > 0) { 
  5. // 输出数据 
  6. while($row = mysqli_fetch_assoc($result)) { 
  7. echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"
  8. else { 
  9. echo "0 结果"

方法二:

  1. $sql = "SELECT id, firstname, lastname FROM MyGuests"
  2. $result = mysqli_query($conn$sql); 
  3.  
  4. if (mysqli_num_rows($result) > 0) { 
  5. // 输出数据 
  6. while($row = mysqli_fetch_assoc($result)) { 
  7. echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"
  8. else { 
  9. echo "0 结果"

看到这里php粉丝网小编再为大家分享一个整理好的类库

  1. <?php 
  2. /**  
  3. * 数据库操作类 
  4. */ 
  5. !defined('ROOTNAME') && exit('FORBIDDEN'); 
  6. class db_mysql{ 
  7.     var $query_num = 0; 
  8.     var $link
  9.       
  10.     function __construct($dbhost$dbuser$dbpw$dbname) { 
  11.         $this->connect($dbhost$dbuser$dbpw$dbname); 
  12.     } 
  13.  
  14.     function connect($dbhost$dbuser$dbpw$dbname) { 
  15. //  global $dbcharset; 
  16.   if(!$this->link = @mysqli_connect($dbhost$dbuser$dbpw$dbname)) { 
  17.     $this->halt("Can not connect to MySQL server"); 
  18.   } 
  19.     
  20.         if($this->server_info() > '5.0'){ 
  21.             mysqli_query($this->link, "SET sql_mode=''"); 
  22.         } 
  23.         /* 
  24.         if($dbname) { 
  25.             if (!@mysqli_select_db($dbname, $this->link)){ 
  26.                 $this->halt('Cannot use database '.$dbname); 
  27.             } 
  28.         }*/ 
  29.     } 
  30.  
  31.     function select_db($dbname) { 
  32.         $this->dbname = $dbname
  33.         if (!@mysqli_select_db($dbname$this->link)){ 
  34.             $this->halt('Cannot use database '.$dbname); 
  35.         } 
  36.     } 
  37.  
  38.     function server_info() { 
  39.         return mysqli_get_server_info($this->link); 
  40.     } 
  41.       
  42.     function version() { 
  43.         return mysqli_get_server_info($this->link); 
  44.     } 
  45.       
  46.       
  47.     function insert($tableName$column = array()) { 
  48.    $columnName = ""
  49.    $columnValue = ""
  50.    foreach ($column as $key => $value) { 
  51.     $columnName .= $key . ","
  52.     $columnValue .= "'" . $value . "',"
  53.    } 
  54.    $columnName = substr($columnName, 0, strlen($columnName) - 1); 
  55.    $columnValue = substr($columnValue, 0, strlen($columnValue) - 1); 
  56.    $sql = "INSERT INTO $tableName($columnName) VALUES($columnValue)"
  57.    $this->query($sql); 
  58.   } 
  59.        
  60.     function update($tableName$column = array(), $where = "") { 
  61.    $updateValue = ""
  62.    foreach ($column as $key => $value) { 
  63.     $updateValue .= $key . "='" . $value . "',"
  64.    } 
  65.    $updateValue = substr($updateValue, 0, strlen($updateValue) - 1); 
  66.    $sql = "UPDATE $tableName SET $updateValue"
  67.    $sql .= $where ? " WHERE $where" : null; 
  68.    $this->query($sql); 
  69.   } 
  70.      function delete($tableName$where = ""){ 
  71.    $sql = "DELETE FROM $tableName"
  72.    $sql .= $where ? " WHERE $where" : null; 
  73.    $this->query($sql); 
  74.   } 
  75.      function select($tableName$columnName = "*"$where = "") { 
  76.    $sql = "SELECT " . $columnName . " FROM " . $tableName
  77.    $sql .= $where ? " WHERE " . $where : null; 
  78.    $this->query($sql); 
  79.   } 
  80.      function get_all($sql,$result_type = MYSQLI_ASSOC) { 
  81.   $query = $this->query($sql); 
  82.   $i = 0; 
  83.   $rt = array(); 
  84.   while($row =& mysqli_fetch_array($query,$result_type)) { 
  85.    $rt[$i]=$row
  86.    $i++; 
  87.   } 
  88.   //$this->write_log("获取全部记录 ".$sql); 
  89.   return $rt
  90.  } 
  91.  
  92.  
  93.  function fetchRow($query){ 
  94.   return mysqli_fetch_assoc($query); 
  95.  } 
  96.       
  97.     function query($sql) { 
  98.   //$this->write_log("查询 ".$sql); 
  99.         mysqli_query($this->link,"set names utf8"); 
  100.   $query = mysqli_query($this->link,$sql); 
  101.   //if(!$query) $this->halt('Query Error: ' . $sql); 
  102.   return $query
  103.  } 
  104.     //获取第一个字段值 
  105.  function getOne($sql$limited = false){ 
  106.   if ($limited == true){ 
  107.    $sql = trim($sql . ' LIMIT 1'); 
  108.   } 
  109.  
  110.   $res = $this->query($sql); 
  111.   if ($res !== false){ 
  112.    $row = mysqli_fetch_row($res); 
  113.  
  114.    if ($row !== false){ 
  115.     return $row[0]; 
  116.    }else
  117.     return ''
  118.    } 
  119.   }else
  120.    return false; 
  121.   } 
  122.  } 
  123.       
  124.       
  125.     function fetch_array($query$result_type = MYSQLI_ASSOC) { 
  126.   return mysqli_fetch_array($query$result_type); 
  127.  } 
  128.       
  129.     //输出记录 
  130.     function fetch_first($sql) { 
  131.         $res=$this->query($sql); 
  132.         return $this->fetch_array($res,MYSQLI_ASSOC); 
  133.     } 
  134.       
  135.     // 取得一条数据记录 
  136.     function get_one($sql$result_type = MYSQLI_ASSOC){ 
  137.         $result = $this->query($sql); 
  138.         $record = $this->fetch_array($result$result_type); 
  139.         return $record
  140.     } 
  141.  
  142.  function getRow($sql$limited = false){ 
  143.   if ($limited == true){ 
  144.    $sql = trim($sql . 'LIMIT 1'); 
  145.   } 
  146.  
  147.   $res = $this->query($sql); 
  148.   if ($res !== false){ 
  149.    return mysqli_fetch_assoc($res); 
  150.   }else
  151.    return false; 
  152.   } 
  153.  } 
  154.  
  155.    
  156.  //取影响条数  
  157.     function affected_rows() { 
  158.         return mysqli_affected_rows($this->link); 
  159.     } 
  160.     //从结果集中取得一行作为枚举数组  
  161.     function fetch_row($query) { 
  162.         return mysqli_fetch_row($query); 
  163.     } 
  164.     // 结果条数 
  165.     function num_rows($query) { 
  166.         return mysqli_num_rows($query); 
  167.     } 
  168.     // 取字段总数  
  169.     function num_fields($query) { 
  170.         return mysqli_num_fields($query); 
  171.     } 
  172.     // 返回查询结果 
  173.     function result($query$row) { 
  174.         $query = mysqli_result($query$row); 
  175.         return $query
  176.     } 
  177.     //释放结果集  
  178.     function free_result($query) { 
  179.         return mysqli_free_result($query); 
  180.     } 
  181.     //返回自增ID  
  182.     function insert_id() { 
  183.         return ($id = mysqli_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); 
  184.     } 
  185.  
  186.  
  187.     function close() { 
  188.         return mysqli_close($this->link); 
  189.     } 
  190.  
  191.  function error() { 
  192.   return (($this->link) ? mysqli_error($this->link) : ''); 
  193.  } 
  194.  //返回错误信息  
  195.  function errno() { 
  196.   return intval(($this->link) ? mysqli_errno($this->link) : ''); 
  197.  } 
  198.  
  199.     function halt($msg = '') { 
  200.   global $charset
  201.         $msg = "<html>\n<head>\n"
  202.         $msg .= "<meta content=\"text/html; charset=$charset\" http-equiv=\"Content-Type\">\n"
  203.         $msg .= "<style type=\"text/css\">\n"
  204.         $msg .= "body,p,pre {\n"
  205.         $msg .= "font:12px Verdana;\n"
  206.         $msg .= "}\n"
  207.         $msg .= "</style>\n"
  208.         $msg .= "</head>\n"
  209.         $msg .= "<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#006699\" vlink=\"#5493B4\">\n"
  210.         $msg .= "<b>error</b>: ".htmlspecialchars($this->error())."\n<br />"
  211.         $msg .= "<b>error number</b>: ".$this->errno()."\n<br />"
  212.         $msg .= "<b>Date</b>: ".date("Y-m-d @ H:i")."\n<br />"
  213.         $msg .= "<b>Script File</b>: http://".$_SERVER['HTTP_HOST'].getenv("REQUEST_URI")."\n<br />"
  214.  
  215.         $msg .= "</body>\n</html>"
  216.         echo $msg
  217.         exit
  218.     } 
  219. ?>

Tags: PHP7原生MySQ

分享到: