PHP 基础(12)之使用PHP操作MySQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 基础(12)之使用PHP操作MySQL相关的知识,希望对你有一定的参考价值。

php操作mysql总共分五步

  1. 连接Mysql

  2. 选择数据库

  3. 执行SQL语句

  4. 关闭结果集

  5. 断开与Mysql服务器的连接


=============================================================

PHP 使用三种API操作MySQL 分别是mysql(新版PHP已弃用) mysqli  PDOextensions

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT ‘Hello, dear MySQL user!‘ AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row[‘_message‘]);

// PDO
$pdo = new PDO(‘mysql:host=example.com;dbname=database‘, ‘user‘, ‘password‘);
$statement = $pdo->query("SELECT ‘Hello, dear MySQL user!‘ AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row[‘_message‘]);

// mysql
$c = mysql_connect("example.com", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT ‘Hello, dear MySQL user!‘ AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row[‘_message‘]);
?>


最后一种方式不推荐使用,已经在PHP5.5.0中被弃用。推荐使用mysqli,PDO extensions的方式。


选择哪一种库?以上三种api都是C库的轻量级封装。

有两种选择mysqlnd,libmysqlclient推荐使用mysqlnd,该库从PHP5.3.0开始内置在PHP中,可以提供lazy connections 和query caching等特性。


在使用PHP api操作mysql的时候,有几个概念有必要搞清楚

  1. buffered and unbuffered queries

PHP的查询默认使用缓冲模式,即查询结果有MySQL Server返回到PHP的时候存在PHP进程的内存里的,这样可以对查询结果进一步的操作,缺点是有可能占用内存过大。(又被称为store result)

PHP的非缓冲模式在查询后返回一个资源,但是查询结果数据仍然在Mysql服务器上。这样PHP占用内存减少,但是Mysql服务器的压力则会增大.(又被称为use result)

因此缓冲模式适用于查询结果较少的情况下,非缓冲模式适用于大量查询结果的情况。

使用mysqli非缓冲查询的一个例子

<?php
$mysqli  = new mysqli("localhost", "my_user", "my_password", "world");
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

if ($uresult) {
   while ($row = $uresult->fetch_assoc()) {
       echo $row[‘Name‘] . PHP_EOL;
   }
}
$uresult->close();
?>

使用pdo_mysql的非缓冲查询的例子

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", ‘my_user‘, ‘my_pass‘);
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$uresult = $pdo->query("SELECT Name FROM City");
if ($uresult) {
   while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
       echo $row[‘Name‘] . PHP_EOL;
   }
}
?>

===================使用PHPStorm如何配置MySQL==============================

View--->Tool Windows--->Database

输入主机名 username,password 

技术分享


技术分享

点击mysql安装驱动

本文出自 “厚积薄发” 博客,请务必保留此出处http://joedlut.blog.51cto.com/6570198/1855911

以上是关于PHP 基础(12)之使用PHP操作MySQL的主要内容,如果未能解决你的问题,请参考以下文章

php mysqli扩展之预处理

PHP之路——MySql基础操作语句

PHP基础(13)使用mysqli操作MySQL数据库

php+sqlserver之如何操作sqlserver数据库

PHP基础之输出缓冲区基本概念原理分析

前端学PHP之PDO基础操作