php连接mysql数据库原理是怎样的

php连接mysql数据库原理是怎样的,第1张

现在使用PDO链接数据库的较多

连接是通过创建 PDO 基类的实例而建立的。不管使用哪种驱动程序,都是用 PDO 类名。构造函数接收用于指定数据库源(所谓的 DSN)以及可能还包括用户名和密码(如果有的话)的参数。

连接到 MySQL

<?php

$dbh = new PDO('mysql:host=localhostdbname=test', $user, $pass)

?>

如果有任何连接错误,将抛出一个 PDOException 异常对象。如果想处理错误状态,可以捕获异常,或者选择留给通过 set_exception_handler() 设置的应用程序全局异常处理程序。

处理连接错误

<?php

try {

    $dbh = new PDO('mysql:host=localhostdbname=test', $user, $pass)

    foreach($dbh->query('SELECT * from FOO') as $row) {

        print_r($row)

    }

    $dbh = null

} catch (PDOException $e) {

    print "Error!: " . $e->getMessage() . "<br/>"

    die()

}

?>

如果应用程序不在 PDO 构造函数中捕获异常,zend 引擎采取的默认动作是结束脚本并显示一个回溯跟踪,此回溯跟踪可能泄漏完整的数据库连接细节,包括用户名和密码。因此有责任去显式(通过 catch 语句)或隐式(通过 set_exception_handler() )地捕获异常。

连接数据成功后,返回一个 PDO 类的实例给脚本,此连接在 PDO 对象的生存周期中保持活动。要想关闭连接,需要销毁对象以确保所有剩余到它的引用都被删除,可以赋一个 NULL 值给对象变量。如果不明确地这么做,PHP 在脚本结束时会自动关闭连接。

关闭一个连接

<?php

$dbh = new PDO('mysql:host=localhostdbname=test', $user, $pass)

// 在此使用连接

// 现在运行完成,在此关闭连接

$dbh = null

?>

很多 web 应用程序通过使用到数据库服务的持久连接获得好处。持久连接在脚本结束后不会被关闭,且被缓存,当另一个使用相同凭证的脚本连接请求时被重用。持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销,从而让 web 应用程序更快。

用ASP连接各种数据库的方法

一、ASP的对象存取数据库方法

在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command

Connection:负责打开或连接数据

Recordset:负责存取数据表

Command:负责对数据库执行行动查询命令

二、连接各数据库的驱动程序

连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。

ODBC链接

适合数据库类型 链接方式

access "Driver={microsoft access driver(*.mdb)}dbq=*.mdbuid=adminpwd=pass"

dBase "Driver={microsoft dbase driver(*.dbf)}driverid=277dbq=------------"

Oracle "Driver={microsoft odbc for oracle}server=oraclesever.worlduid=adminpwd=pass"

MSSQL server "Driver={sql server}server=servernamedatabase=dbnameuid=sapwd=pass"

MS text "Driver={microsoft text driver(*.txt*.csv)}dbq=-----extensions=asc,csv,tab,txtPersist SecurityInfo=false"

Visual Foxpro "Driver={microsoft Visual Foxpro driver}sourcetype=DBCsourceDB=*.dbcExclusive=No"

MySQL "Driver={mysql}database=yourdatabaseuid=usernamepwd=yourpasswordoption=16386"

OLEDB链接

适合的数据库类型 链接方式

access "Provider=microsoft.jet.oledb.4.0data source=your_database_pathuser id=adminpassword=pass"

Oracle "Provider=OraOLEDB.Oracledata source=dbnameuser id=adminpassword=pass"

MS SQL Server "Provider=SQLOLEDBdata source=machinenameinitial catalog=dbnameuserid=sapassword=pass"

MS text "Provider=microsof.jet.oledb.4.0data source=your_pathExtended Properties′textFMT=Delimited′"

而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:

dim conn

set conn = server.createobject("adodb.connection")

conn.open = "provider=microsoft.jet.oledb.4.0" &"data source = " &server.mappath("../db/bbs.mdb")

其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:

dim conn

set conn = server.createobject("adodb.connection")

conn.open = "provider=microsoft.jet.oledb.4.0" &"data source = " &server.mappath("bbs.mdb")

有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6727471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存