- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下代码:
public function getDefinitions($wordID) {
$query = $this->dbc->prepare('SELECT * FROM definitions WHERE wordID = ?');
$query->bind_param('i', $wordID);
$query->execute();
// ...
$query->close();
return $result;
}
这似乎会重新创建 prepared statement对于每次调用。这似乎没有充分利用准备好的陈述的全部好处。特别是在这些准备语句是 stored server side 的情况下.是真的吗?
如果是这样,我是否应该存储 prepare 语句(在本例中为属性)以在调用之间保留它。有没有办法在请求之间保留准备好的语句?我假设这本质上是一个存储过程?
目前我正在使用 MySQLi。如果我使用其他驱动程序(例如 PDO),请注意任何 API 差异。
最佳答案
should I store the prepare statement (in this case as a property) to persist it between invocations.
我不会说你“应该”。如果您预见到很多后续调用(您不能将它们组合起来一次调用),您可能会这样做。无论哪种方式,您都几乎无法注意到现实生活中的差异。
Is there a way to persist the prepared statement between requests?
在 PHP 中 - 没有。准备好的语句是基于连接的,连接随请求一起关闭,持久连接也无济于事,因为 mysqli is using designated mechanism在重新使用之前清理连接状态。
Please note any API difference if I were using another driver (e.g. PDO).
PDO 优于 mysqli,因为它可以模拟 准备好的语句,甚至可以消除两次数据库调用这样微不足道的开销,这使它更适合实际使用(除了其他主要优点) .
简而言之,原生准备语句的“准备一次-多次执行”特性仅对大量查询(从数千开始)才会有显着效果。
关于php - 我需要坚持准备好的陈述吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937786/
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
显然,我实际上是想创建一个数组,在多次试验 (5000) 中随机分配生日。然后假设每次有 2 - 50 人至少有 2 个生日时,将结果除以 5,000 以获得近似概率。我相信我的循环搞砸了,希望得到一
PYTHON:试图计算摆在不同行星上摆动所需的时间,我对此非常陌生,因此可能有一个简单的解决方案: def main(): print('Period of a pendulum')
在我的 MySQL 表中,有一行标记为“state”。有 3 个可能的值。我如何利用 PHP 将“Unbanned”回显为状态中的“0”?将“禁止”与“1”相对应,将“临时禁止”与“3”相对应? 我如
我的宏代码中有一个 If 公式,但它似乎没有以正确的方式工作。 下面的代码计算 rCell.Offset 并始终将其应用为 True,我有一些示例,其中它等于 112、113、118 等,并且它正在将
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Why do you have to put a 1; at the end of a Perl 5 module?
网上查了一下parent::init();的意思.我所能找到的只是 init() 是初始化一些设置,这些设置希望在每次应用程序运行时出现。谁能准确解释 parent::init() 的含义,比如这两个
这个问题已经有答案了: What does "%.*s" mean in printf? (4 个回答) 已关闭 3 年前。 我试图理解 printf() 但我只熟悉 C++ cout= 0; r--
我正在开发一个试图通过 tsv infile 将数据插入 mysql 数据库的 java 项目。运行该程序时出现以下错误: Exception in thread "main" java.sql.SQ
好的,我正在开发一个新的应用程序,只要我使用相对 View ,一切都运行良好。但是,我想要一个选项卡式布局,所以我将我拥有的内容(到目前为止还不多,因为我刚刚从数据库中读取它并且设置正常)切换到选项卡
我在另一个问题中看到了这个提示,想知道是否有人可以向我解释这究竟是如何工作的? try { return x; } finally { x = null; } 我的意思是,finally 子句是否真的
这个问题已经有答案了: Is it better to wrap code into an 'IF' statement, or is it better to 'short circuit' the
我是一名优秀的程序员,十分优秀!