这篇文章主要知识点是关于php连接MySQL、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
记录一下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有所帮助。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
Windows Server 2008 R2和2012中PHP连接MySQL过慢的原因
对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢。 Windows 7 用 127.0.0.1 连接本地 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 数据库 。……
SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法
同事报告一起奇怪的现象,一个最简单的测试PHP代码,在测试环境很正常,但是在正式环境下,无论用何种方式(tcp/ip、unix socket)都无法连接mysql。 我协助查看了下,确实如此,无论是指定IP、端口的tcp/ip方式连接,或者是用unix socket方式连接,报错信息都类似: Could not connect: Can't connect to MySQL server on 'MYSQL.SERVER' (13) 无论如何修改MySQL的授权,或者调整php.ini中关于MySQL的设置,或者修改MySQL的监听网口,都无法解决。 而如果用命令行人工连接MySQL,则一切正常。 问题看起来像是php(with apache)不被允许连接MySQL,但是防火墙也没有限制。想来想去,唯有SELinux的因素会导致这个问题。 getsebool -a|grep -i httpd 可以看到这里设置了httpd进程的许可模式,再仔细看一下,有一个选项: getsebool -a|grep -i httpd_can_network_connect httpd_can_network_connect -- off 现在明白了,原来是S……
PHP连接MySql闪断自动重连的方法
使用php作为后台运行程序(例如短信群发),在cli模式下执行php,php需要连接mysql循环执行数据库处理。 当mysql连接闪断时,之后循环的执行将会失败。 我们需要设计一个方法,当mysql闪断时,可以自动重新连接,使后面的程序可以正常执行下去。 1.创建测试数据表 CREATE TABLE `user` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2.插入测试数据 insert into user(name) values('fdipzone'),('xfdipzone'),('terry');mysql select * from user;+----+-----------+| id | name |+----+-----------+| 1 | fdipzone || 2 | xfdipzone || 3 | terry |+----+-----------+ 3.后台运行的php文件 db.php ?php// 数据库操作类class DB{// 保存数据库连接private static $_instance = null;// 连接数据库public static function get_conn($config){if(isset(self::$_instance) !empty(self::$_instance)){return self::$_instance;}$dbhost = ……