问题标签 [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.
php - 如何在 PHP 的会话中存储对象?
您好我想在会话中存储或保存一个对象,使用像 SessionHandler 或数组 $_SESSION 这样的类,我已经看到如果我序列化对象是可能的,我不想丢失该对象的方法实例..我已经看到序列化它是可能的,但我想要存储的对象是由 PDOStatement::fetchObject() 创建的,尽管实例类是“用户”我得到这个错误:
PDOException: 你不能序列化或反序列化 PDO 实例 为什么?它不是 PDO 实例..
对不起,我是西班牙人,我的英语不太好..谢谢
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
php - 是否可以将 PDO 参数绑定到对象的成员变量?
使用PDOStatement::bindParam()
,可以将参数绑定到变量——这在多次执行准备好的语句时特别有用,每个语句都有不同的参数值。例如:
我的问题是:
是否可以将参数绑定到对象的成员变量?例如:
/li>如果是这样,这样的参数绑定到哪个 object的成员变量:
/li>bindParam()
调用时引用的那个,还是语句执行时引用的那个?例如:这种行为记录在哪里(如果有的话)?
php - php pdostament 获取问题
我有一个数据库,它有两条记录用于测试目的......数据库列(user_id、用户名、密码和角色)......
我正在使用 PHP PDO 与数据库通信我创建了一个扩展 PDO 的类文件,如下所示
我在我的登录页面上使用这个文件,它有以下代码
但是除了我打印的查询之外,我在页面上看不到任何内容...尽管数据库中有数据...
当我尝试使用“FETCH_OBJ”时,另一件事我得到以下错误
产生上述错误的代码如下
请帮忙,因为我从来没有使用过 PHP PDO,而且在 php 中不是很好......谢谢你的时间
php - PDO 类和 PDOStatement 类的关系
我是一个 php 和 mysql 初学者,我目前正在自学 PDO 并且混淆了一些概念:
1.PDO类和PDOStatement类是什么关系?
$dbh
是类PDO的新对象,但为什么 $users 是PDOStatement对象?fetchAll()
是类里面的函数PDOStatement
,但是你可以这样使用它$users->fetchAll()
,是$users
aPDO
还是PDOStatement
object?
2.有人说$users是游标,一旦被消费,就不会回退到结果集的开头。
但是为什么你可以在foreach
声明中使用它呢?foreach
提供了一种遍历数组的方法。光标实际上是什么?光标是指针吗?
3.对于pdostatement类,文档说:
为什么这个类实现 Traversable 接口?是空界面吗?
谢谢你的帮助!
mysql - 如何在 yii 查询中按列值分组?
我有一个包含 7 列和 400 条记录的数据表。其中之一是预算。我想按预算对 400 行进行分组,以便得到这样的数组:
到目前为止,我一直在玩 Yii 的 CdbCommand 和 CdbDataReader 以及 PHP 的 PDOStatement,但没有任何工作正常。我尝试了以下代码
print_r 的尝试全部打印出来。getPdoStatement 等于什么。我一直在尝试按照 Php.net 网站使用 PDO::FETCH_COLUMN|PDO::FETCH_GROUP ,但它也不起作用,因为我什么也没得到。
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 类:
这是猫类:
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 中的结果集的数据结构最类似于[多维阵列……或者随便什么……]等等等等……”
请帮忙。
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
失败。
一个例子来看看我的意思:
谢谢你
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!