这篇文章主要知识点是关于PHP、MySQL、Windows、php连接MySQL的两种方式对比 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
对比下面两个脚本的速度:
my.ini里配置了
bind-address=127.0.0.1
用localhost连接本地MySQL: 速度慢
<?php $start = microtime(true); $mysqli = new mysqli('127.0.0.1', 'root', '', 'mysql'); //连接耗时仅为0.0025秒. //$mysqli = new mysqli('localhost', 'root', '', 'mysql'); //连接耗时超过1秒,比正常慢了400倍. echo microtime(true) - $start;
分析:
1.my.ini里配置
bind-address=127.0.0.1
时,Win7及其以上版本系统PHP用localhost连接MySQL耗时超过1秒,比用127.0.0.1连接慢了400倍.
2.my.ini里配置
bind-address=::1
时,Win7及其以上版本系统PHP用localhost连接MySQL速度是正常的,但用127.0.0.1连接又不正常了.
3.去掉bind-address配置,则用localhost或127.0.0.1连接MySQL速度都是正常的.
所以:在配置了
bind-address=127.0.0.1
的情况下,应该使用 127.0.0.1 连接本地 MySQL 数据库 。
安装 WordPress、phpMyAdmin 等 PHP 程序的时候默认使用 localhost 连接本地 MySQL 数据库,这时注意把默认的 localhost 改为 127.0.0.1。
另外,Windows 2008、2012 跟 Windows 7 存在同样的问题。
记录一下PHP连接MySQL的两种方式。
先mock一下数据,可以执行一下sql。
/*创建数据库*/ CREATE DATABASE IF NOT EXISTS `test`; /*选择数据库*/ USE `test`; /*创建表*/ CREATE TABLE IF NOT EXISTS `user` ( name varchar(50), age int ); /*插入测试数据*/ INSERT INTO `user` (name, age) VALUES('harry', 20), ('tony', 23), ('harry', 24);
第一种是使用PHP原生的方式去连接数据库。代码如下:
<?php $host = 'localhost'; $database = 'test'; $username = 'root'; $password = 'root'; $selectName = 'harry';//要查找的用户名,一般是用户输入的信息 $connection = mysql_connect($host, $username, $password);//连接到数据库 mysql_query("set names 'utf8'");//编码转化 if (!$connection) { die("could not connect to the database.\n" . mysql_error());//诊断连接错误 } $selectedDb = mysql_select_db($database);//选择数据库 if (!$selectedDb) { die("could not to the database\n" . mysql_error()); } $selectName = mysql_real_escape_string($selectName);//防止SQL注入 $query = "select * from user where name = '$selectName'";//构建查询语句 $result = mysql_query($query);//执行查询 if (!$result) { die("could not to the database\n" . mysql_error()); } while ($row = mysql_fetch_row($result)) { //取出结果并显示 $name = $row[0]; $age = $row[1]; echo "Name: $name "; echo "Age: $age "; echo "\n"; }
其运行结构如下:
Name: harry Age: 20
Name: tony Age: 23
第二种是使用PDO的方式去连接数据库,代码如下:
<?php $host = 'localhost'; $database = 'test'; $username = 'root'; $password = 'root'; $selectName = 'harry';//要查找的用户名,一般是用户输入的信息 $pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);//创建一个pdo对象 $pdo->exec("set names 'utf8'"); $sql = "select * from user where name = ?"; $stmt = $pdo->prepare($sql); $rs = $stmt->execute(array($selectName)); if ($rs) { // PDO::FETCH_ASSOC 关联数组形式 // PDO::FETCH_NUM 数字索引数组形式 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $name = $row['name']; $age = $row['age']; echo "Name: $name "; echo "Age: $age "; echo "\n"; } } $pdo = null;//关闭连接
其结果与第一种相同。
以上所述就是本文的全部内容了,希望能够对大家熟练掌握mysql有所帮助。
以上就是本次给大家分享的关于PHP的全部知识点内容总结,大家还可以在下方相关文章里找到PHP实现的微信公众号及网、 PHP异常和错误的日志记录、 php微信公众号里快递查询、 等php文章进一步学习,感谢大家的阅读和支持。
展开 +
收起 -
Copyright 2018-2020 xz577.com 码农之家
电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路
鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
上传资源(网友、会员均可提供)
PHP使用mysqli扩展连接MySQL数据库
1.面向对象的使用方式 $db = new mysqli('localhost', 'root', '123456', 'dbname'); 如果建立连接时未指定数据库则选择使用的数据库,切换使用的数据库 $db-select_db('dbname');$query = "SELECT * FROM user WHERE uid=4";$result = $db-query($query);$result_num = $result-num_rows;$row = $result-fetch_assoc(); //返回一个关联数组,可以通过$row['uid']的方式取得值$row = $result-fetch_row(); //返回一个列举数组,可以通过$row[0]的方式取得值$row = $result-fetch_array(); //返回一个混合数组,可以通过$row['uid']和$row[0]两种方式取得值$row = $result-fetch_object(); //返回一个对象,可以通过$row-uid的方式取得值$result-free(); //释放结果集$db-close(); //关闭一个数据库连接,这不是必要的,因为脚本执行完毕时会自动关闭连接 当进行INSERT、UPDATE、DELETE操作时,使用$db-affected_rows查看影响行数 2.面向过程的使用方式 $db = mysqli_connect('localh……
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
本文实例讲述了thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下: 惯例配置文件:ThinkPHP/conf/convention.php (1)在配置文件中填写配置信息(配置文件:“./xmall/conf/config.php”): 示例: ?phpreturn array( //'配置项'='配置值' /* 数据库设置 */ 'DB_TYPE' = 'mysql', // 数据库类型 'DB_HOST' = 'localhost', // 服务器地址 'DB_NAME' = 'xmall', // 数据库名 'DB_USER' = 'root', // 用户名 'DB_PWD' = '123', // 密码 'DB_PORT' = '3306', // 端口 'DB_PREFIX' = 'think_', // 数据库表前缀 'DB_FIELDTYPE_CHECK' = false, // 是否进行字段类型检查 'DB_FIELDS_CACHE' = true, // 启用字段缓存 'DB_CHARSET' = 'utf8', // 数据库编码默认采用utf8);? (2)创建表: CREATE TABLE `think_user` ( `id` int(11) DEFAULT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(20) DEFAULT NULL) ENGINE=InnoDB; (3) 执行数据插入操作在lib/Action下修改IndexAction.class.php文件,内容如下:……
PHPExcel导入Excel表格到MySQL数据库的简单实例详解
如下所示: ?phpdefine(BASE_URL, realpath(dirname(__FILE__)));require_once BASE_URL . /PHPExcel/PHPExcel.php;//引入PHPExcel类文件//excel文件的地址$excel_fiel_path = ./phpexcel.xls;$PHPExcel = new PHPExcel();// 实例化PHPExcel工具类//分析文件获取后缀判断是2007版本还是2003$extend = pathinfo(./ . $excel_fiel_path);$extend = strtolower($extend[extension]); // 判断xlsx版本,如果是xlsx的就是2007版本的,否则就是2003if ($extend==xlsx) { $PHPReader = new PHPExcel_Reader_Excel2007(); $PHPExcel = $PHPReader-load(./ . $excel_fiel_path);}else{ $PHPReader = new PHPExcel_Reader_Excel5(); $PHPExcel = $PHPReader-load(./ . $excel_fiel_path);} /* 第二种方法*/$objWorksheet = $PHPExcel-getActiveSheet();$highestRow = $objWorksheet-getHighestRow(); echo highestRow=.$highestRow;echo br;$highestColumn = $objWorksheet-getHighestColumn();$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数echo highestColumnIndex=.$highest……
Mac OS下PHP环境搭建及PHP操作MySQL常用方法小结
Mac本地环境搭建 在Mac系统,我们可以使用MAMP Pro (官方网站:https://www.mamp.info/en/)软件来搭建本地服务器。安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点。 mac系统下安装php,两行即可。 brew tap josegonzalez/homebrew-phpbrew install php54 安装完后配置一下,你就可以使用phpstorm来愉快地编程啦。安装的php路径在/usr/local/bin/php 数据库基本操作 1)用户的 Web 浏览器发出 HTTP 请求,请求特定 Web 页面。 2)Web服务器收到.php 的请求获取该文件,并将它传到 PHP 引擎,要求它处理。 3)PHP 引擎开始解析脚本。 脚本中有一条连接数据库的命令, 还有执行一个查询的令。命 PHP 打开通向 MYSQL 数据库的连接,发送适当的查询。 4)MYSQL 服务器接收数据库查……
Windows下php+mysql5.7配置教程
WINDOWS 下 PHP+MYSQL配置 下载mysql 地址:https://dev.mysql.com/downloads/ 点击Community 点击DOWNLOAD 选择下载的版本 点击 No thanks, just start my download. 下载得到mysql-5.7.18-winx64.zip 解压到C盘根目录,并改名为mysql57,进入mysql57,新建txt文件,改名为my.ini,打开该文件,添加下列配置信息。 [mysqld]#mysql根目录basedir=C:\mysql57#data数据存放的目录datadir=C:\mysql57\data#mysql占用的端口port=3306 保存退出 进入bin,按住shift键点击鼠标右键,选择在当前位置打开命令窗口。 输入下面的代码初始化数据库 mysqld --initialize --user=mysql --console 初始化成功后,会给root账号生成一个随机密码,显示在最后面,12位字符,记得保存下来 输入下面代码,安装mysql服务 mysqld --install MYSQL 显示下面图片则安装成功 输入下面代码,启动mysql C:\Windows\System32\net start mysql 显示下面图片则启动成功 输入下面代码,……