phpphp5.6 怎么连接mysqll

PHP用户登录注册连接MYSQL_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PHP用户登录注册连接MYSQL
上传于||文档简介
&&最​简​单​的​登​陆​验​证​连​接​调​用​数​据​库
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
你可能喜欢PHP连接MySQL数据库 - csensix - 博客园
既然现在你看到了这篇文章,说明你肯定知道PHP和MySQL是怎么一回事,我就不啰嗦了。但为什么你还要继续阅读此文呢?可能是以前你习惯复制粘贴一些代码,并没有真正弄懂代码的含义;也可能你以前弄懂了,但像我一样,有一段时间没有接触,生疏了;再或者,有人问你类似的简单问题,而你已经不屑于回答,直接上网搜索,恰好找到了这篇,于是就推荐给那谁谁谁了...不管怎样,在这里我总结了三种常用的PHP连接MySQL数据库方法,希望能够帮到你,当然也是作为我自己的一个回顾总结。
方法一:普通方法(面向过程)
首先,我先做出如下假设(也适用与方法二和方法三)
$username=your_
$userpass=your_
$dbdatabase=your_
下面是关键步骤:
1 //生成一个连接
2 $db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");
4 //选择一个需要操作的数据库
5 mysql_select_db($dbdatabase,$db_connect);
7 //执行MySQL语句
8 $result=mysql_query("SELECT id,name FROM user");
10 //提取数据
11 $row=mysql_fetch_row($result);
代码注释已经说明了一切。不过这里还需要做一些补充。
①在mysql_connect()、mysql_select_db()等函数之前使用,可以忽略掉系统产生的错误信息,然后我们用die()来自定义错误信息;
②提取数据的时候,除了上面的mysql_fetch_row,常见的还有mysql_fetch_assoc和mysql_fetch_array,具体差别请查阅PHP&Manual;
③对于mysql_query()函数的返回值,如果执行的语句有返回值(如SELECT、SHOW、DESCRIBE等),则返回相应数据(成功时)或FALSE(失败时);如果执行的语句没有返回值(如DELETE、DROP、INSERT、UPDATE等),则返回TRUE(成功时)或FALSE(失败时)。
方法二:面向对象方法
其实这种方法和普通方法非常类似,只是把相应的函数换成了面向对象方法,直接看代码。
1 $db=new mysqli($dbhost,$username,$userpass,$dbdatabase);
2 if(mysqli_connect_error()){
echo 'Could not connect to database.';
7 $result=$db-&query("SELECT id,name FROM user");
8 $row=$result-&fetch_row();
这里用到的是mysqli,意思就是mysql的扩展,既可以通过面向过程的方式也可以通过面向对象的方式与数据库进行交互,唯一不同的是调用函数(对象方法)的方式不一样。
方法三:PDO方法
PDO其实是PHP&Database&Objects的缩写,中文即PHP数据库对象。它提供了一种统一的PHP与数据库交互的方法。
这是目前比较流行的一种连接数据库的方法。它的优势在于:只要正确提供数据源,余下对于数据库的基本操作都是一样的。也就是说,同一段代码既可以同MySQL交互,也可以和SQLite3交互,当然也可以和PostgreSQL进行交互,前提是你提供了正确的数据源。下面看一下连接MySQL的代码:
$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';'
$dbh=new PDO($dsn,$username,$userpass);
如果是SQLite3,直接使用下面的代码:
$dsn='sqlite3:"C:\sqlite\user.db"';
$dbh=new PDO($dsn);
如果是PostgreSQL,下面的代码能够对付:
$dsn='pgsql:host='.$dbhost.' port=5432 dbname='.$dbdatabase.' user='.$username.' password='.$userpass;
$dbh=new PDO($dsn);
跟数据库成功建立连接之后,下面就只需要从数据库获取数据或插入更新数据,实例代码如下:
$stmt=$dbh-&query('SELECT id,name FROM user');
$row=$stmt-&fetch();
至此,文章告一段落。当然,上面只是简单的介绍了一下PHP与数据库有关的最简单的操作,后面还有很多比如插入、排序、防止SQL注入等等一些方面的知识需要深入学习。希望有机会能够和大家一起探讨,共同进步。POD是PHP一个扩展,PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
本文为大家讲解的是php下通过pdo来连接mysql并进行简单的操作示例,感兴趣的同学参考下。
最近在linux装了新的环境,php5.6+mysql5.5+nginx。然后用原来的mysql链接数据库出现的错误。
原因就是说连接数据库的方法太旧。建议我用mysqli和PDO来连接数据库。
好吧,咱也不能落后,使用mysqli的确也简单了不少,但是PDO貌似更简单。效率也会得到提升。根据官方文档,貌似对于sql注入的一些风险也做了屏蔽。所以今天写的 博客就是关于php用PDO连接mysql的一些介绍啦!
POD是PHP一个扩展,PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我们必须借助 ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展效率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。
下面说说PDO基于php的版本:
PDO 是 PHP 5.1 发行的,也就是说,在 5.1 之前的版本是不支持 PDO,5.1之后的都支持啦。在PHP5.0的PECL扩展中也可以使用。
PDO如何使用:
这里我们就以PHP的黄金搭档mysql作为例子看看:
PDO_MYSQL:PDO_MYSQL是PDO接口能够完成连接mysql数据库的驱动(注:仅使用于mysql 3.x以上版本)。
安装:打开php.ini文件,可以找到如下代码,这里可以看到mysql的驱动默认已经打开(前面没有用于注释的分号),如有连接其他数据库的需要,自行添加其他数据库的驱动程序(取出相应的项前面的分号,没有的添上)。
//各数据库的PDO驱动&& &
extension=php_pdo.dll&&& &
extension=php_pdo_firebird.dll //Firebird&& &
extension=php_pdo_informix.dll //Informix&& &
extension=php_pdo_mssql.dll&&& //sql server&& &
extension=php_pdo_mysql.dll&&& //mysql&& &
extension=php_pdo_oci.dll&&&&& //Oracle&& &
extension=php_pdo_oci8.dll&&& &
extension=php_pdo_odbc.dll&&&& //DB2&& &
extension=php_pdo_pgsql.dll&&& //PostgreSQL&& &
extension=php_pdo_sqlite.dll&& //SQLite
连接:通过创建PDO基类的实例创建连接。
//连接到数据库
$db&=&new&PDO('mysql:host=dbname=test',&$user,&$pass);&&&&
简单的查询方法:
header('content-type:text/charset=utf-8'); &
&&& $db = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', '');&& &
&&& //查询&& &
&&& $rows = $db-&query('SELECT * from members')-&fetchAll(PDO::FETCH_ASSOC); &
&&& $rs = array(); &
&&& foreach($rows as $row) {&& &
&&&&&&& $rs[] = $& &
&&& $db =&& &
} catch (PDOException $e) {&& &
&&& print &Error!: & . $e-&getMessage() . &&br/&&;&& &
&&& die();&& &
print_r($rs); &
不明白啥意思,俺们来慢慢讲讲。这行:
$dsn = &mysql:host=127.0.0.1;dbname=test&;
就是构造我们的DSN(数据源),看看里面的信息包括:数据库类型是mysql,主机地址是localhost,数据库名称是test,就这么几个信息。不同数据库的数据源构造方式是不一样的。
$db = new PDO($dsn, 'root', '');
初始化一个PDO对象,构造函数的参数第一个就是我们的数据源,第二个是连接数据库服务器的用户,第三个参数是密码。我们不能保证连接成功,后面我们会讲到异常情况,这里我们姑且认为它是连接成功的。
$count = $db-&exec(&INSERT INTO foo SET name = 'heiyeluren',gender='男',time=NOW()&);
调用我们连接成功的PDO对象来执行一个查询,这个查询是一个插入一条记录的操作,使用PDO::exec() 方法会返回一个影响记录的结果,所以我们输出这个结果。最后还是需要结束对象资源:
默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT =& true)变成这样:
$db = new PDO($dsn, 'root', '', array(PDO::ATTR_PERSISTENT =& true));
一次操作就这么简单,也许跟以前的没有太大区别,跟ADOdb倒是有几分相似。
使用setFetchMode方法来设置获取结果集的返回值的类型,同样类型还有:
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
$db-&query($sql);&当$sql&中变量可以用$dbh-&quote($params);&//转义字符串的数据&&&&
php pdo statement
PDOStatement::bindColumn & 绑定一列到一个 PHP 变量&& &
PDOStatement::bindParam & 绑定一个参数到指定的变量名&& &
PDOStatement::bindValue & 把一个值绑定到一个参数&& &
PDOStatement::closeCursor & 关闭游标,使语句能再次被执行。&& &
PDOStatement::columnCount & 返回结果集中的列数&& &
PDOStatement::debugDumpParams & 打印一条 SQL 预处理命令&& &
PDOStatement::errorCode & 获取跟上一次语句句柄操作相关的 SQLSTATE&& &
PDOStatement::errorInfo & 获取跟上一次语句句柄操作相关的扩展错误信息&& &
PDOStatement::execute & 执行一条预处理语句&& &
PDOStatement::fetch & 从结果集中获取下一行&& &
PDOStatement::fetchAll & 返回一个包含结果集中所有行的数组&& &
PDOStatement::fetchColumn & 从结果集中的下一行返回单独的一列。&& &
PDOStatement::fetchObject & 获取下一行并作为一个对象返回。&& &
PDOStatement::getAttribute & 检索一个语句属性&& &
PDOStatement::getColumnMeta & 返回结果集中一列的元数据&& &
PDOStatement::nextRowset & 在一个多行集语句句柄中推进到下一个行集&& &
PDOStatement::rowCount & 返回受上一个 SQL 语句影响的行数&& &
PDOStatement::setAttribute & 设置一个语句属性&& &
PDOStatement::setFetchMode & 为语句设置默认的获取模式。
插入,更新,删除数据,
$db-&exec(&DELETE&FROM&`xxxx_menu`&where&mid=43&);&
Copyright &
All Rights Reserved &&&&&&PHP MySQL 由于目标计算机积极拒绝,无法连接
PHP 连接 MySQL 服务,出现“SQLSTATE[HY000] [2002] 由于目标计算机积极拒绝,无法连接。”的错误信息,是因为连接不上 MySQL 服务器。
出现“由于目标计算机积极拒绝,无法连接”可能的原因有:
MySQL 数据库服务器没有启动
这种情况启动一下 MySQL 服务器就OK了。数据库服务器地址填写错误。
服务器地址可以以域名形式填写
也可以以回送IP(如127.0.0.1)内网IP(如192.168.1.2)外网IP(如110.188.213.43)填写MySQL 服务器绑定了IP。
这种情况换用绑定的IP或解析到这个IP的域名访问服务器就行了。数据库端口错误
MySQL 数据库服务器通常绑定 3306 端口,这可以在配置文件里面修改。
在配置文件的[mysqld]段,查看是否有port=3306,如果不是3306,程序中就需要指定端口号。PHP怎样默认连接MYSQL_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PHP怎样默认连接MYSQL
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
你可能喜欢

我要回帖

更多关于 php连接mysql配置 的文章

 

随机推荐