草庐IT

u2-pdo-driver

全部标签

php - SQL Server 错误 1934 发生在 INSERT 到具有计算列 PHP/PDO 的表中

将计算列添加到SQLServer2005中的表后,我在INSERT上收到以下消息,仅通过PHP(使用PDO)它在SQLServerManagmentStudio中工作正常。为确保一切正确,我使用SQLServerProfiler设置了一个跟踪并将INSERT语句复制/粘贴到SQLServerManagmentStudio中。它在SSMS中运行良好,但在PHP中继续失败。Erroraddingcontact:SQLSTATE[HY000]:Generalerror:1934GeneralSQLServererror:CheckmessagesfromtheSQLServer[1934](

php - Php PDO 函数 : lastInsertId? 有多安全

我不太清楚PhpPDO函数:lastInsertID。如果我理解正确,它会返回插入数据库的最后一个自动增量ID。我通常在创建用户注册功能时执行将用户插入数据库的查询时使用此函数。我的问题是,比如说我有100个人同时在我的网站上注册。并且可能是一个用户在另一个用户之后一毫秒点击“注册”按钮。那么这个函数lastInsertId是否有可能返回另一个刚刚注册的用户的ID?可能我想问的是服务器一次处理一个请求并一次处理一个php文件吗?请让我知道这件事。谢谢。 最佳答案 绝对安全。没有竞争条件。它只从进行插入的pdo对象返回最后插入的Id。

php - 当 PDO::exec() 中的任何语句失败时,有没有办法抛出异常?

PDO::exec()允许(至少对于某些驱动程序,例如mysqlnd)一次执行多个语句。这很好用,当我将几个查询传递给PDO::exec()时,它们都会被执行:$pdo->exec('DROPTABLEa;DROPTABLEb;');我的PDO实例配置为抛出异常:$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);如果第一个查询失败,它会按预期抛出异常:$pdo->exec('DROPTABLEdoes_not_exist;DROPTABLEok;');//PDOException但是当任何后续查询失败时,它会默默地

php - PDO 连接 : UTF-8 declaration with SET NAMES/CHARACTER SET?

根据php.net、StackOverflow和其他可信来源,我可以找到4种不同的方法来在PDO连接上设置UTF-8,但找不到哪个更好:$pdo_db='mysql:host=localhost;dbname=local_db;charset=utf8';//METHOD#1$pdo_login='root';$pdo_pass='localpass';$db=newPDO($pdo_db,$pdo_login,$pdo_pass,array(PDO::ATTR_ERRMODE=>$localhost?PDO::ERRMODE_EXCEPTION:PDO::ERRMODE_SILENT

PHP PDO : Do the fetch styles FETCH_CLASS and FETCH_INTO fetch into private object properties?

很短的问题,这里有一个例子:$prepared=$this->pdo->prepare("SELECT*FROMUsersWHEREID=:ID");$statement=$prepared->execute(array(":ID"=>$User_ID))$result=$statement->fetchAll(PDO::FETCH_CLASS,"User");//OR$User=newUser();$result=$statement->fetch(PDO::FETCH_INTO,$User);(从头开始写,可能包含语法错误)这两个是否直接获取所述对象的私有(private)属性?我

php - 哪些标记可以在 PDO 准备语句中参数化?

我正在使用PHP/PDO中的准备好的语句。基本查询工作正常,将值传递给WHERE子句:$stmt=$db->prepare('SELECTtitleFROMepisodeWHEREid=:id');$stmt->bindParam(':id',$id,PDO::PARAM_INT);$id=5;$stmt->execute();但是我有一种情况需要为字段名称传递变量。此查询(具有适当的绑定(bind))工作正常:SELECT:fieldFROMepisodeWHEREid=:id这个报错:SELECTtitleFROM:fieldWHEREid=:id这个没有给出错误,但不返回任何行:

php - PDO异常 : You cannot serialize or unserialize PDO instances

我尝试使用内存缓存在PHP中缓存我的用户对象,但在使用PDO时出现错误。我添加了一个__sleep和一个__wakeup函数。用户.php/***@varPDO*/protected$db;publicfunction__construct(){$this->db=getInstanceOf('db');}publicfunction__destruct(){}publicfunction__sleep(){returnarray('db');}publicfunction__wakeup(){$this->db=getInstanceOf('db');}getInstanceOf('

php - 如何将诸如 "now() -interval ' 2 minutes'"之类的内容插入 PHP PDO 查询?

我有这样的查询:(在Postgresql8.4上,PHP-fpm5.3.10(fpm-fcgi))select*fromuserswherenow()-interval'2minutes'我想使用PHP/PDO查询,所以:$mymin=5;//thisisavariablecanbechangedby$_GET$query=$db_conn->prepare("select*fromuserswherenow()-interval':myminuteminutes'bindParm(":myminute",$mymin)$query->execute;这行不通,我找不到以正确方式传递s

php - 使用 PECL OS : Ubuntu 在 PHP 5.1.6 上安装 PDO_MYSQL

我在使PDO_MYSQL工作时遇到了真正的问题。我开始只是尝试通过PECL安装PDO_MYSQL驱动程序,但是当这不起作用时,我环顾四周看看是否报告了任何问题。看来可能是嵌入式版本的PDO和PDO_MYSQL有冲突。为此,我决定从PECL重新安装它的所有依赖项。环境:操作系统:UbuntuPHPVer:5.1.6(客户端现场环境无法升级)遵循的程序:PECLuninstallPDO_MYSQLPECLuninstallPDOPECLuninstallmysqlPECLinstallmysqlPECLinstallPDOPECLinstallPDO_MYSQLLinesAddedtoPH

php - 如何在 pdo->query 中添加变量值

我想升级我当前的代码,它不断地用PDO注入(inject)sql。目前我一直坚持在PDO查询中使用变量。如果我有两个这样的参数$rowsPerPage=3;//bydefaultweshowfirstpage$pageNum=1;if(isset($_GET['page'])){$pageNum=mysql_real_escape_string($_GET['page']);}$offset=($pageNum-1)*$rowsPerPage;我有这样的查询$STH=$DBH->query("SELECTNews.ID,LEFT(NewsText,650),Title,AID,Date