当前位置:首页 > 编程教程 > mysql技术文章 > php连接MySQL的两种方式对比

php连接MySQL的两种方式区别

  • 发布时间:
  • 作者:码农之家
  • 点击:183

这篇文章主要知识点是关于php连接MySQL、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

MySQL从入门到项目实践
  • 类型:MySQL大小:314.8 MB格式:PDF作者:聚慕课教育研发中
立即下载

Tags:php连接MySQL 

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的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

MySQL 相关电子书
学习笔记
网友NO.716329

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 数据库 。……

网友NO.807806

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……

网友NO.486897

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 = ……

<
1
>

电子书 编程教程 PC软件下载 安卓软件下载

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757