问题标签 [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 回答
15032 浏览

php - 如何在 PHP 的会话中存储对象?

您好我想在会话中存储或保存一个对象,使用像 SessionHandler 或数组 $_SESSION 这样的类,我已经看到如果我序列化对象是可能的,我不想丢失该对象的方法实例..我已经看到序列化它是可能的,但我想要存储的对象是由 PDOStatement::fetchObject() 创建的,尽管实例类是“用户”我得到这个错误:

PDOException: 你不能序列化或反序列化 PDO 实例 为什么?它不是 PDO 实例..

对不起,我是西班牙人,我的英语不太好..谢谢

0 投票
1 回答
986 浏览

php - 繁忙的 PHP 连接到 MYSQL?

PHP & MySQL Novice to Ninja, 5th Edition这是一部分 Kevin Yank

通常,当我们执行 SELECT 查询时,我们使用 while 循环或 foreach 循环的条件来检索结果的每一行,一次一个:

当我们以这种方式处理查询结果时,PHP 实际上会在循环请求时从数据库中检索每一行,并在它移动到下一行时将其丢弃。这使 PHP 不必使用大量内存来一次保存所有结果行。

大多数时候,我们开发人员不需要知道 PHP 正在走这条聪明的捷径。但是每隔一段时间,我们会想在处理完前一个查询的所有结果之前向 MySQL 服务器发送另一个 SQL 查询。

如果我们不小心的话,这正是这段代码中即将发生的事情:我们刚刚运行了一个 SELECT 查询来询问属于特定作者的所有笑话的列表,当我们处理这个列表时,我们想为每一个执行一个 DELETE 查询。问题是,据 MySQL 所知,它仍然会忙着向我们发送 SELECT 查询的结果;我们不能只是打断它并要求它开始运行 DELETE!这样做会导致我们的 DELETE 失败并出现错误。

这就是 fetchAll 方法的用武之地。通过在准备好的语句 ($s) 上调用此方法,我们要求 PHP 检索查询的整个结果集并将它们存储在 PHP 数组 ($result) 中:

我的问题是为什么我可以PDOStatement result sets在我的 PHP 代码中使用一个或多个语句时执行 MYSQL 语句?甚至我可以delete在这些行中引用所有行result sets

0 投票
1 回答
971 浏览

php - 是否可以将 PDO 参数绑定到对象的成员变量?

使用PDOStatement::bindParam(),可以将参数绑定到变量——这在多次执行准备好的语句时特别有用,每个语句都有不同的参数值。例如:

我的问题是:

  1. 是否可以将参数绑定到对象的成员变量?例如:

    /li>
  2. 如果是这样,这样的参数绑定到哪个 object的成员变量:bindParam()调用时引用的那个,还是语句执行时引用的那个?例如:

    /li>
  3. 这种行为记录在哪里(如果有的话)?

0 投票
1 回答
174 浏览

php - php pdostament 获取问题

我有一个数据库,它有两条记录用于测试目的......数据库列(user_id、用户名、密码和角色)......

我正在使用 PHP PDO 与数据库通信我创建了一个扩展 PDO 的类文件,如下所示

我在我的登录页面上使用这个文件,它有以下代码

但是除了我打印的查询之外,我在页面上看不到任何内容...尽管数据库中有数据...

当我尝试使用“FETCH_OBJ”时,另一件事我得到以下错误

产生上述错误的代码如下

请帮忙,因为我从来没有使用过 PHP PDO,而且在 php 中不是很好......谢谢你的时间

0 投票
2 回答
960 浏览

php - PDO 类和 PDOStatement 类的关系

我是一个 php 和 mysql 初学者,我目前正在自学 PDO 并且混淆了一些概念:

1.PDO类和PDOStatement类是什么关系?

$dbh是类PDO的新对象,但为什么 $users 是PDOStatement对象?fetchAll()是类里面的函数PDOStatement,但是你可以这样使用它$users->fetchAll(),是$usersaPDO还是PDOStatementobject?

2.有人说$users是游标,一旦被消费,就不会回退到结果集的开头。

但是为什么你可以在foreach声明中使用它呢?foreach提供了一种遍历数组的方法。光标实际上是什么?光标是指针吗?

3.对于pdostatement类,文档说:

为什么这个类实现 Traversable 接口?是空界面吗?

谢谢你的帮助!

0 投票
2 回答
849 浏览

mysql - 如何在 yii 查询中按列值分组?

我有一个包含 7 列和 400 条记录的数据表。其中之一是预算。我想按预算对 400 行进行分组,以便得到这样的数组:

到目前为止,我一直在玩 Yii 的 CdbCommand 和 CdbDataReader 以及 PHP 的 PDOStatement,但没有任何工作正常。我尝试了以下代码

print_r 的尝试全部打印出来。getPdoStatement 等于什么。我一直在尝试按照 Php.net 网站使用 PDO::FETCH_COLUMN|PDO::FETCH_GROUP ,但它也不起作用,因为我什么也没得到。

0 投票
1 回答
2639 浏览

php - PDOStatement::fetchAll() :SQLSTATE[HY000]:

当我执行代码时,这个错误返回给我

警告:PDOStatement::fetchAll() [pdostatement.fetchall]: SQLSTATE[HY000]: 一般错误:第 28 行 C:\AppServ\www\cms_project\lib\database_model.class.php 中的额外参数

警告:array_shift() [function.array-shift]:参数应该是第 34 行 C:\AppServ\www\cms_project\lib\database_model.class.php 中的一个数组

警告:第 43 行 C:\AppServ\www\cms_project\lib\cat.class.php 中为 foreach() 提供的参数无效

这是 database_model 类:

这是猫类:

0 投票
0 回答
228 浏览

php - PHP PDOStatement 数据结构

我最近开始使用 PHP,对编程还很陌生。我正在使用 PDOStatement 对象,并希望更好地了解它的数据结构。如果我对对象执行 print_r,则输出似乎已分配给属性“queryString”的查询:

但是,查询的结果集根本不输出。我想知道对象是如何在源代码中定义的,并希望更好地理解结果集是如何存储在对象中的,所以我下载了 PHP 5.4.11 源代码。我发现了我认为是 PDOStatement 的源代码,好吧,让我们说我在尝试阅读源代码之后没有进一步的进展。

有人可以帮我了解结果集是如何存储的,为什么不通过 print_r 输出,如果您碰巧知道它在源代码中的位置,请验证 pdo_stmt.c 是正确的源代码文件。我知道 PDOStatement 实现了 Iterable ,它扩展了 Traversible ,并且 PDOStatement 可以通过 foreach 循环进行交互,但我希望至少能够用以下术语理解该对象:

“我创建了一个 PDO 对象并调用 'query' 方法(传入查询),该方法返回一个 PDOStatement,查询存储在其“queryString”属性中,结果集存储在__属性中。因为存储了结果集作为_ ___它不会通过 print_r 输出,但可以通过 foreach 循环访问,或者可以通过 fetchAll() 将结果集导出到数组...存储在 PDOStatement 中的结果集的数据结构最类似于[多维阵列……或者随便什么……]等等等等……”

请帮忙。

0 投票
0 回答
126 浏览

php - 调用 json_decoded 数组的键返回 NULL

我很难理解为什么在某些情况下访问 PDO 中的密钥的特定方式有效,而当我尝试自己时却没有。

例如,

这个 PDO 访问了一个数组的键(它在一个 javascript 对象中,然后在 PHP 中发布和 json_decoded)$user->field,但是当我尝试模拟解码的数组并使用var_dump ($user->field)时,我会收到NULL.

谁能告诉我为什么会这样?

在下面的示例中,当 I 时var_dump ($user),我可以看到所有键,但是当我看到时var_dump($user->field),我只收到null,因此导致课程updateValue失败。

一个例子来看看我的意思:

谢谢你

0 投票
2 回答
2254 浏览

php - PDOStatement query with subqueries returns empty result

I have the following PHP code which whows a weird behaviour. The system is backed by a PostgreSQL database, PHP version is 5.3.15.

The query executes without errors but the function returns an empty array. There are definitely rows to find in the database, if I execute the query in pgAdmin (placeholder replaced by ID in question of course), it returns the rows I want to get.

I managed to find out that the sub-queries are the problem here. If I comment them out and use the following query, the rows are returned. But of course this does also return rows which I try to filter out with the sub-queries.

Does PDO simply not support this type of sub-queries or is there any error in my code I cannot find?

Thanks in advance!