草庐IT

php - 让 Microsoft PHP PDO for SQL Server 工作

我正在尝试让用于SQL服务器的PHPPDO驱动程序正常工作。我从Microsoft获得了该文件。我正在使用PHP5.3。我将php_pdo_sqlsrv_53_nts.dll复制到我的PHP扩展目录并修改了PHP.INI。错误日志显示[31-Mar-201220:11:38]PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'c:\php\ext\php_pdo_sqlsrv_53_nts.dll'-Thespecifiedmodulecouldnotbefound.inUnknownonline0文件确实存在。我用DEPENDS.EXE检

php - PDO:如何检查连接是否有效?

已经有twoquestions关于这一点,但没有人真正回答这个问题。我知道如果连接失败,PDO将抛出异常(假设您启用了PDO::ERRMODE_EXCEPTION),但我想测试连接是否仍然事件,可能会在数小时后。我有一个长时间运行的脚本,一段时间后它超时了。从理论上讲,我可以使用PDO::ATTR_TIMEOUT增加这段时间,但基本上我想编写一个函数来返回一个事件连接——如果已经建立,则为现有连接和没有超时,如果超时则重新连接。我应该只执行SELECT1,捕获异常,然后重新连接吗?或者有更好的方法吗? 最佳答案 为此,MySQL协议

php - 如何在 PDO 中将值与 % 绑定(bind)?

$query=$connect->prepare("SELECTusers.firstname,users.lastname,users.idFROMusersINNERJOINusers_friendsONusers.id=users_friends.uIDWHEREbID=:USERANDtype=:typeANDaccepted='1'AND(users.firstnameLIKE'%:queryString%'ORusers.lastnameLIKE'%:queryString%')LIMIT10");$query->bindValue(":queryString",$quer

php - PDO 参数化查询的工作方式

请仔细阅读问题。这不是通常的愚蠢“我的代码不起作用!!!”问题。当我运行此代码时出现预期错误try{$sth=$dbh->prepare("SELECTidFROMusersWHEREnameINN(?,?)");$sth->execute(array("I'm","d'Artagnan"));}catch(PDOException$e){echo$e->getMessage();}我收到此错误消息YouhaveanerrorinyourSQLsyntax...near'INN('I\'m','d\'Artagnan')'atline1但多年来我一直认为查询和数据分别发送到服务器并且永

php - 如何在其他类中使用PDO连接?

我想我在理解OOP的工作原理方面遇到了问题。我已经更改了它的工作代码,但这不是我认为的正确方式。以下场景(不,我不是自己创建用户登录,它实际上只是为了让本地开发人员更好地理解OOP):我有一个database.php文件:classDatabase{/*Properties*/private$conn;private$dsn='mysql:dbname=test;host=127.0.0.1';private$user='root';private$password='';/*Createsdatabaseconnection*/publicfunction__construct(){

php - PDO 通过引用通知?

这个:$stmt=$dbh->prepare("SELECTthingFROMtableWHEREcolor=:color");$stmt->bindParam(':color',$someClass->getColor());$stmt->execute();产生这个:RuntimenoticeOnlyvariablesshouldbepassedbyreference虽然它仍然执行。这个:$stmt=$dbh->prepare("SELECTthingFROMtableWHEREcolor=:color");$tempColor=$someClass->getColor();$st

Ubuntu 服务器上的 PHP PDO 到 MS SQL Server

我正在尝试使用PDO连接到MSSQLServer。我试过用这个$db=newPDO("sqlsrv:server=server;database=databaseName","username","password");我读到不再支持sqlsrv。我尝试使用dblib,但它不起作用。我想使用PDO,因为它应该与各种数据库一起工作,但我似乎无法让它与MSSQL一起工作。在Ubuntu上将PDO与SQLServer结合使用的最佳方式是什么?任何帮助都会很棒。谢谢 最佳答案 我想通了。我想我忘记了我从未在此服务器上安装SQL/Sybase

php - 使用 PDO 语句获取受影响的行数和最后插入的 ID

如何显示受影响的行数:$sql=$conn->prepare("UPDATEcountriesSETcountry=:country");$sql->bindValue(":country","blablaa");$sql->execute();以及如何显示最后插入的ID:$sql=$conn->prepare("INSERTINTOcountries(country)VALUES(:country)");$sql->bindValue(":country","test");$sql->execute();echo$sql->lastInsertId();//idoflastinser

php - 如何使用 PDO 获取行

我尽量不沮丧,但我最近了解到mysql_*在PHP中已被弃用。我决定学习如何使用PDO。我今天下午一直在看它,使用它连接到数据库很容易,但后来我想用它获取一行并将该行保存为一个由列名索引的数组(方法相同正如函数mysql_fetch_array所做的那样)。我想不出办法来挽救我的生命。我会发布我的代码来澄清,我确信这很简单(所有编程错误总是很简单),但我肯定做错了什么。//Connecttothedatabase$host=$_PARAM["DatabaseServer"];$db=$_PARAM["MainDatabase"];$dbuser=$_PARAM["DatabaseUse

php - 使用 PDO 转义列名

我有一个类似的函数functiongetInfoById($id,$info){}想法是让查询成为"SELECT$infoFROMtableWHEREid=$id"这不适用于PDO,因为您无法转义列名。我也不太想使用"SELECT*",因为那样不会返回更大的结果集并使用更多内存吗? 最佳答案 是的,PDO没有用于分隔标识符(如表名和列名)的内置函数。PDO::quote()函数仅适用于字符串文字和日期文字。值得一提的是,当我在ZendFramework上工作时,我实现了一个quoteIdentifier()函数。你是对的,SELEC