草庐IT

u2-pdo-driver

全部标签

PHP PDO - 无法序列化或反序列化 PDO 实例

我需要将PDO连接从controller传递到cart类,function__construct($connection){$this->cart=newcart($connection);}但我认为问题出在serialize()publicfunctionrender_page(){if(!isset($_SESSION[SESSION_CART])){$cart=$this->cart;}else{$cart=unserialize($_SESSION[SESSION_CART]);}$_SESSION[SESSION_CART]=serialize($cart);}我收到这个错误

php - 将日期参数绑定(bind)到准备好的语句时出错——将 PHP PDO/ODBC 与 SQL Server 一起使用

我有一个与ODBC(v2000.86.359.00)连接到SQLServer(v8.00.2039SP4标准版)数据库的pdo连接。这个有效:$id=486;$duedate='June27,2012';$query="INSERTintoAssetHistory(AssetID,DateDue)Values($id,$duedate);";$noParams=$db->exec($query);$db->query($query);但是如果我尝试使用这样的准备好的语句:$sql='INSERTintoAssetHistory(AssetID,DateDue)Values(:id,:d

PHP Firebird API : php_interbase or PDO?

2年来,我们一直在新脚本中使用PDO来连接我们的MySQL、PostgreSQL和SQLite数据库。我们现在开始一个项目,我们需要读取(可能还有一些简单的更新)一个Firebird2.5数据库文件。我想使用PDO,因为我们已经在使用它,而且它不会是一个过渡。然而PDO_FIREBIRDPECL软件包最后一次更新似乎是在2006年。所以我的问题是:对于一个新项目,使用PDOFirebird驱动程序还是使用php_interbaseAPI更好?IE。PDOFirebird驱动程序生产值得吗? 最佳答案 如果您从PHP的主存储库使用PD

PHP PDO ODBC - 数据类型在等于运算符中不兼容

我似乎无法让带有参数的简单WHERE子句起作用,我不断收到一条错误消息:[Microsoft][ODBCSQLServerDriver][SQLServer]Thedatatypesvarchar(max)andtextareincompatibleintheequaltooperator.(SQLExecute[402]atext\pdo_odbc\odbc_stmt.c:254)我已经以多种不同的方式尝试过这个查询,例如未命名:$query=$DBH->prepare("SELECTTOP1*FROMbksb_ResourcesWHEREResourceType=?");$quer

php - 检查 PDO 中的 session ID 是否为 ISSET

我正在切换到PDO准备好的语句,但我在获取和使用sessionID的代码中遇到了问题。当客户注册时,session_id设置为等于user_id(自动递增),并且在用户返回时以相同方式设置session_id。这在切换到PDO之前工作正常,但现在session_id在任何后续页面上都无法识别(它正在将“user_id”视为null)我需要切换到使用PDOsession处理程序,还是有办法继续使用我熟悉的方法?mysql-这是我用来设置sessionID的代码(正常工作)://Statementsdefining$user_name,$passwordand$hashedPassword

php - 在涉及 PDO 事务的嵌套原子操作方面需要帮助

我有两个可以独立使用的不同模块,但是Module2依赖于Module1。模块2有一个操作需要是原子的,它调用模块1中的一个操作也需要是原子的。假设我已将PDO::ATTR_ERRMODE设置为PDO:ERRMODE_EXCEPTION,以下高度通用化和截断的代码会产生以下结果:PHPfatalerror:未捕获的异常“PDOException”和消息“已经有一个事件事务”模块1:pdo->beginTransaction();try{$stmt=$this->pdo->prepare(...);...$this->pdo->commit();}catch(Exception$ex){$

php - PDO PARAM_STR 和长度

我不明白PDOPARAM_*语句中的长度选项。长度是否表示所需字符的数量,还是最大值?例子:$sth->bindParam(2,$color,PDO::PARAM_STR,12);这需要12个字符,还是限制为12个字符?或者,我是否完全误解了这是在做什么? 最佳答案 它表示您希望在输出参数中接收多少数据,服务器不会发送超过此数量的数据。因此,要回答您的问题,这是一个限制而非要求。 关于php-PDOPARAM_STR和长度,我们在StackOverflow上找到一个类似的问题:

php - 制作用于 Hook PDO 查询的 databaseDo() 函数

所以我开始了thistutorial作为PHPPDO的介绍。到目前为止,我只处理过基本的mysql_*类型查询。我注意到,在整个教程中,connect->doaction->disconnect模式不断重复,只有doaction部分发生了变化。在现实世界中,通过创建一个可以将查询传递到其中的函数来消除重复是否是个好主意?例如:处理查询的函数:getMessage();}?>然后,假设我想执行PDO教程第一个示例中的操作,我会这样设置:exec($query);echo$exec;};//PerformactiondatabaseDo($insert);?>$dbh的范围我使用$dbh作

PHP 无法加载动态库 "php_pdo_oci.dll"

我在Windows8上运行Apache2.4.7和PHP5.5.9。我安装了PHPUnit,这个警告图像“警告”开始弹出。是的,我在php.ini和“extension_dir”中启用了扩展加载以更正文件夹,并且该文件夹中有一个名为“php_pdo_oci.dll”的文件。我尝试使用不同的apache和php版本,但没有帮助。有什么解决方法的建议吗? 最佳答案 ..._oci.dll是OracleC接口(interface)的一部分。除非你需要使用Oracle,否则我建议你去php.ini文件中的相关行,取消注释这个扩展的加载。但是

php - PDO : insert 3 rows instead in mysql when i insert just 1 row

我在我的php框架(flight)中使用PDO,但我遇到了一个荒谬的问题。当我将1行插入mysql时,我看到插入了3行。Flight::db()->query("INSERTINTO`menu_item`(`order`,`menu_cat_id`)VALUES(22,1)");这是我的全部代码:setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND,"SETNAMES'utf8'");$db->exec("SETNAMES'utf8';"