问题标签 [pdostatement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
945 浏览

php - PDO::FETCH_CLASSTYPE - 意外结果

我在这里不知所措。不知道为什么我会得到“stdClass”。我不应该从第一列得到名字吗?

0 投票
1 回答
925 浏览

php - try catch block not working with pdo statement and foreach

Recently I've encouraged weird error in PHP code. It's like the inner try{}catch(){} block is omited when using PDOStatement object with foreach(){}. Here is my test code which triggers this behaviour:

This outputs something like this on my localhost (PHP 5.3.6-13ubuntu3.6 with Suhosin-Patch (cli)) and on server (PHP 5.2.17):

Don't know why but when I change foreach($sth as $row){ to foreach($sth->fetchAll() as $row){ everythings works as expected:

Did I found a bug or am I doing something wrong? Can someone confirm that behaviour? Thx

// EDIT

Upgrading PHP version to 5.3.10 seems to fix this issue. Thx for help...

0 投票
1 回答
4292 浏览

php - 如何在 PDO 中按数字绑定 ENUM 类型

是否可以通过 PDO 语句中的编号绑定 MySQL ENUM 类型,例如:

0 投票
1 回答
2352 浏览

php - 在 PDO::commit 之后使用 PDOStatement::rowCount 结果?

在 MySQL 文档中,有一条关于mysql_affected_rows在事务提交后使用的说明:http: //php.net/manual/en/function.mysql-affected-rows.php

注意:事务
如果您使用事务,则需要在 INSERT、UPDATE 或 DELETE 查询之后调用mysql_affected_rows() ,而不是在 COMMIT 之后。

PDOStatement::rowCount但是,文档 上没有这样的注释: http ://www.php.net/manual/en/pdostatement.rowcount.php

这是否意味着在使用对象时,在 INSERT、UPDATE 或 DELETE 查询之后提交不会影响受影响的行数PDO

0 投票
2 回答
1297 浏览

php - PDOStatement fetchColumn() 的 PHP 致命错误

我无法理解这个错误,有人可以向我解释一下吗?

PHP 致命错误:在第 27 行的 /user/dal.php 中的非对象上调用成员函数 fetchColumn()

我试图通过使用正则表达式对最后一个查询执行新SELECT COUNT(*)查询来获取最后一个查询的计数。问题是$stmt->fetchColumn()导致致命错误,然后我得到Error 500.

我究竟做错了什么?

0 投票
0 回答
140 浏览

php - 在 PHP 中重用 PDOStatements 进行数据库调用的效率

将 prepare() 返回的 PDOStatement 保存到某个类变量然后重用该语句对象而不是在执行相同调用时重新准备是否有效?

这是否比每次调用查询或方法时都准备一条新语句更有效?

0 投票
1 回答
453 浏览

php - 扩展 PDOStatement 以使用默认的 FETCH_CLASS。期望类名作为字符串

我一直在玩弄 PDO 来尝试为结果创建一个默认返回类,并使其成为一般的默认行为。

这使我发现我需要扩展PDOStatement以便它在实例化时设置我的默认类。

代码中没有明显的错误。

当我在 DB 包装器中创建 PDO 实例时,我将 DB 句柄设置为使用我的扩展语句类,并将类名作为结果类的参数传递。我通常会使用 stdClass 但相反,我创建了一个简单的类扩展ArrayObject.

这一切看起来都很好,但我收到以下错误:

SQLSTATE[HY000]: General error: Invalid class name (should be a string)

这不是最好的错误消息,也没有真正提供有关错误发生的原因或位置的任何信息,但我相信这是由于上面的部分,因为一旦我删除了该部分,它就不会发出错误了。

希望有人能给我一个前进的方向,因为我已经在 Google/SO-ing 一段时间了,但是,唉,无济于事。

提前感谢您,如果我提供的内容不够,请随时询问更多信息:]

0 投票
3 回答
15581 浏览

php - MySQL PDO fetchAll 作为具有整数索引的数组

我有一个有两列的表。表:ctgtable和列:idctg。由于我完全从以前的mysql_*功能转移到PDO,我面临一些愚蠢的错误(或者可能缺乏知识)。

问题

我想将整个表的ctg列(总共最多 20 行)选择为具有整数索引的数组。

我的方法

我认为最接近的可能解决方案是:

对于相同的结果,还有其他更短/更好的选择吗?或者这是获取结果的最佳/唯一可能的方法。

样品表

等等

样本结果

索引可能从 0 开始,也可能不从 0 开始。这对我来说并不重要。我尝试搜索这样一个可能的问题,但它们似乎都与我的问题无关。

0 投票
1 回答
138 浏览

php - 这个 bindValue 错了吗?

我有PDO statement如下(AFAIK,PDO 不需要数据来escaped准备):

这段代码什么都不做。但它确实会生成这样的转储:

0 投票
1 回答
16861 浏览

php - PDO::Query() 返回 false

我正在尝试在 PHP 中学习和使用 PDO。我在 query() 方法中遇到了一个问题。

我试图用$sth = $db->query("SELECT * FROM titles ORDER BY RAND() LIMIT 1");随机选择一个网站的标题,但由于某种原因,$sth总是错误的。当我使用prepare()and时它可以工作execute(),但我试图找出query().

这是我正在调用的整个函数: