草庐IT

PDO_SQLANYWHERE

全部标签

php - 如何正确使用 PDO 对象进行参数化 SELECT 查询

我已尝试按照PHP.net的说明进行SELECT查询,但我不确定执行此操作的最佳方法。如果可能的话,我想使用参数化的SELECT查询来返回name字段匹配的表中的ID范围。这应该返回一个ID,因为它是唯一的。然后我想将该ID用于INSERT到另一个表中,因此我需要确定它是否成功。我还读到您可以准备查询以供重复使用,但我不确定这有什么帮助。 最佳答案 您选择这样的数据:$db=newPDO("...");$statement=$db->prepare("selectidfromsome_tablewherename=:name");$

php - 在 MySQL Linux 服务器上安装 PDO 驱动程序

不久前有人建议我更改我的代码以使用PDO,以便参数化我的查询并将HTML安全地保存在数据库中。嗯,这里是主要问题:我看了http://php.net/manual/en/ref.pdo-mysql.php,我真的不知道应该把那个$./configure--with-pdo-mysql字符串放在哪里...我正在构建的站点实际上只需要一页的PDO。虽然我可能会考虑重写它,但这需要一段时间,而且我需要页面尽快运行,所以我不能完全关闭MySQL。如果我安装了PDO,我还能使用mysql_*处理程序吗?有问题的服务器正在运行PHP版本5.4.6-1ubuntu1和Apache/2.2.22(Ub

php - PDO 关闭连接

与MySQLi相比,PDO只是一个相当简单的问题。使用MySQLi,您可以关闭连接:$this->connection->close();但是,对于PDO,它声明您使用以下方式打开连接:$this->connection=newPDO();但要关闭连接,请将其设置为null。$this->connection=null;这是正确的吗?这真的会释放PDO连接吗?(我知道它设置为null。)我的意思是使用MySQLi你必须调用一个函数(close)来关闭连接。PDO是否像=null一样容易断开连接?还是有关闭连接的功能? 最佳答案 根据

php - 从 PDO 准备好的语句中获取原始 SQL 查询字符串

有没有办法在准备好的语句上调用PDOStatement::execute()时执行原始SQL字符串?出于调试目的,这将非常有用。 最佳答案 我假设您的意思是您想要最终的SQL查询,并在其中插入参数值。我知道这对调试很有用,但这不是准备好的语句的工作方式。参数不与客户端的预准备语句组合,因此PDO永远不应访问与其参数组合的查询字符串。执行prepare()时将SQL语句发送到数据库服务器,执行execute()时单独发送参数。MySQL的一般查询日志确实显示了最终的SQL,其中包含在您执行()之后插入的值。以下是我的一般查询日志的摘录

php - MySQL、MySQLi 和 PDO 有什么区别?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭9年前。ImprovethisquestionMySQL和MySQLi有什么区别?和PDO?哪一个最适合与PHP-MySQL一起使用? 最佳答案 有(超过)三种流行的方法可以从PHP中使用MySQL。这概述了一些功能/差异PHP:ChoosinganAPI:(已弃用)mysqlfunctions是程序性的并使用手动转义。MySQLi是mysql函数的替代品,具有面向对象和过程的版本

mysql - mysql 扩展已弃用,将来会删除 : use mysqli or PDO instead

这个问题在这里已经有了答案:Whyshouldn'tIusemysql_*functionsinPHP?(12个回答)7年前关闭。当我尝试从PHP连接到MySQL服务器时,我看到以下错误:Deprecated:Themysqlextensionisdeprecatedandwillberemovedinthefuture:usemysqliorPDOinsteadin/path/to/filename.phponline123引用行上的代码是:mysql_connect($server,$username,$password);我确信这些论点是正确的,这个确切的代码多年来一直没有问题。

php - 在 PDO 中使用持久连接有什么缺点

在PDO中,可以使用PDO::ATTR_PERSISTENT属性建立持久连接。根据php手册-Persistentconnectionsarenotclosedattheendofthescript,butarecachedandre-usedwhenanotherscriptrequestsaconnectionusingthesamecredentials.Thepersistentconnectioncacheallowsyoutoavoidtheoverheadofestablishinganewconnectioneverytimeascriptneedstotalktoad

php - PHP PDO 语句可以接受表名或列名作为参数吗?

为什么我不能将表名传递给准备好的PDO语句?$stmt=$dbh->prepare('SELECT*FROM:tableWHERE1');if($stmt->execute(array(':table'=>'users'))){var_dump($stmt->fetchAll());}还有其他安全的方法可以将表名插入SQL查询吗?有了安全,我的意思是我不想做$sql="SELECT*FROM$tableWHERE1" 最佳答案 表名和列名不能被PDO中的参数替换。在这种情况下,您只需手动过滤和清理数据。一种方法是将速记参数传递给将动

php - mysqli 或 PDO - 有什么优点和缺点?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。在我们这里,我们在使用mysqli和PDO来处理诸如准备好的语句和事务支持之类的东西之间进行划分。有些项目使用一个,有些项目使用另一个。我们几乎不可能迁移到另一个RDBMS。我更喜欢PDO,因为它允许为准备好的语句使用命名参数,而据我所知mysqli不

php - PDO bindParam 与执行

我经常看到使用bindParam的代码或bindValue与PDO。只是将参数传递给execute因任何原因而皱眉?我了解bindParam实际上绑定(bind)到变量,您可以设置绑定(bind)的参数类型bind方法,但是如果你只是插入字符串呢?$query="SELECTcol1FROMt1WHEREcol2=:col2ANDcol3=:col3ANDcol4=:col4";$pdo->bindValue(':col2','col2');$pdo->bindValue(':col3','col3');$pdo->bindValue(':col4','col4');上面我经常看到,但