草庐IT

PDO-ODBC

全部标签

PHP、PDO 和异常

我目前对PDO有点进退两难。由于我想利用事务,我最近切换到从我自己的自定义数据库类中使用它。我面临的问题是如何从已经用PDO的try/catch包装的代码块中抛出异常。这是一个例子...try{//PDOcode//Transactionstart//Throwmanualexceptionhereiferroroccurs(transactionrollbacktoo)//Transactioncommit}catch(PDOException$e){//Transactionrollback//Codetohandletheexception}以上面的代码示例为例,并牢记PHP手册

PHP| pear :MDB2 vs PDO vs Native-PHP (Raw)

在通过Internet(以及Stackoverflow此处)进行了某种研究之后-我仍在努力决定哪种方法最适合我在使用PHP编程时学习/使用和挖掘更多信息。我理解在处理数据库时使用DAO比使用分布在应用程序文件中的直接mysql_*函数有一些优势。当要在MDB2与PDO之间做出决定时-支持PDO的一件事是它不抽象mysql_*函数,它直接与mysqlapi对话,就像mysql_*做。它也是PHP的编译C扩展,因此速度非常快。虽然MDB2(或其他库)是用PHP编写的,因此它们需要在运行时进行解析并位于mysql_*函数之上。那么,就速度而言,PDO胜出?!?当谈到比较DB抽象层与nativ

PHP PDO : Set FireBird connection timeout

我正在连接到FireBird数据库,该数据库在线时工作正常。当服务器离线时,用户会收到最大执行时间传递错误。因此我想用trycatch包围连接语句并将超时设置为10秒。但是我找不到合适的属性来这样做。默认的ATTR_TIMEOUT似乎不起作用。谁能告诉我PDO和FireBird是否可行? 最佳答案 不确定PHP/PDO,但您可以尝试在firebird.conf文件中有ConnectionTimeout参数。默认值为180秒(引用自conf文件):#----------------------------#ClientConnecti

php - 如何拦截 PDO 调用?

我正在尝试在我正在开发的基于PHP的产品中实现插件API。我创建了一个继承自PHP的PDO类的类,然后添加了一些额外的方法。问题是,我想在插件API中拦截PDO的.query()、.exec()、.execute()和.fetchAll()之类的东西,处理传递给/来自这些方法的参数。我尝试使用__call($method,$args)拦截器技术,但在这种情况下它不起作用,因为我无法将PDO方法标记为protected。我如何创建一个继承自PDO的类,然后在它们被发送到父类之前拦截PDO类方法?目标是拦截传递给/来自这些方法的参数,以便我的插件API可以工作。这是我正在开发的产品的插件A

php - PDO 连接不起作用

我尝试使用PDO连接到mysql数据库,但不起作用。我写:$db=newPDO('mysql:dbname=test;host=localhost','user','pass');返回错误:Warning:PDO::__construct()[pdo.--construct]:[2002]Noconnectioncouldbemadebecausethetargetmachineactivelyrefusedit.请告诉我,PDO想要什么?php版本:5.3.9主机:本地计算机,(服务器-“usbwebserver”) 最佳答案 这

PHP SQLite PDO 检查用户是否在表中?

我正在尝试创建一个脚本来检查提供的用户名是否在表“users”中,但“if”语句总是返回false。用户表只有一列“用户名”,列出了所有用户。我做错了什么?$dbh=newPDO("sqlite:db.sqlite");$stmt=$dbh->prepare("SELECTusernamefromuserswhereusername=:name");$stmt->bindParam(":name",$user);$stmt->execute();if($stmt->rowCount()>0){//inthetable}else{//notinthetable}整个脚本:login($u

具有 PDO 的基于 PHP 类的用户系统 - 在非对象上调用成员函数 prepare()

我已经做了相当多的研究、故障排除和搜索,试图解决我的问题,但没有成功。所以这是错误...在非对象上调用成员函数prepare()生成此错误的代码在我的用户Auth类中,如下所示...$this->dbManager->db->prepare('INSERTINTOusers(email,password,user_salt,is_admin)VALUES(:email,:password,:user_salt,:is_admin)');dbManager来自$db,我已将其传递到我的类的__construct中,如下所示...publicfunction__construct($db)

php - PDO 识别缺失的绑定(bind)变量

使用PDO的一个比较乏味的地方是它说缺少一些变量PDOStatement::execute():SQLSTATE[HY093]:Invalidparameternumber:numberofboundvariablesdoesnotmatchnumberoftokens...但不告诉哪些。有什么解决方案可以识别它们吗?例如$sql="SELECTid,nameWHEREid=:idANDnamelike:search_tem";$stmt=$pdo->prepare($sql);$stmt->bindValue(':id','1');$stmt->execute();//throwse

php - 这个错误是什么意思? PDO异常 : SQLSTATE[23000]: Integrity constraint violation

我在这里非常绝望,我有这个Drupal7生产站点,出乎意料的是,我在进入任何管理页面时都收到此错误(在日志中):这是什么意思?PDOException:SQLSTATE[23000]:Integrityconstraintviolation:1062Duplicateentry'25309582'forkey'PRIMARY':INSERTINTO{accesslog}(title,path,url,hostname,uid,sid,timer,timestamp)VALUES(:db_insert_placeholder_0,:db_insert_placeholder_1,:db_

php - 我可以在使用 Zend_Db_Adapter_Pdo_Mssql 时设置查询超时吗?

我们有一个PHP应用程序(托管在Linux上),它使用ZendFramework组件来查询MicrosoftSQLServer2008数据库。PHP应用程序托管在具有可靠互联网连接的数据中心,但SQLServer数据库位于VPN连接的远端,该连接经常断开。我们遇到的问题是,在对SQL服务器进行查询时,VPN偶尔会掉线。发生这种情况时,我们的应用程序最多可以等待2小时,然后最终引发以下异常:SQLSTATE[HY000]:Generalerror:20004Readfromtheserverfailed[20004](severity9)[(null)]我想做的是将整体查询超时和/或读取