当前位置: 首页 > 面试题库 >

mysqli准备语句中带有fetch_array的SELECT语句

姚洲
2023-03-14
问题内容

我总是发现很难编写MySQLi预备语句,因为许多函数的工作方式与旧方法不同。现在我面临一个问题fetch_array()

$stmt = $db->prepare("SELECT category_id FROM post_items Where user_id = ?");
$stmt->bind_param('i', $userid);
$result = $stmt->execute();
while ($row = $result->fetch_array()) {
    // ...
}

问题答案:

您正在尝试通过以下方式获取结果

$result = $stmt->execute();

事实并非如此。因为execute将仅返回布尔值。

做喜欢的。

$stmt = $db->prepare("SELECT category_id FROM post_items Where user_id = ?");
$stmt->bind_param('i', $userid);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
        //result is in row
}


 类似资料:
  • 问题内容: 我如何使用mysqli用LIKE进行查询并获得所有结果? 这是我的代码,但是不起作用: 此代码似乎不起作用。我已经搜索了很多。也可能返回多于1行。那么,即使返回的结果超过1行,我如何获得所有结果呢? 问题答案: 这是您正确获取结果的方式 或者,您也可以执行以下操作: 希望您意识到我从这里和这里的手册中直接得到了答案,这是您应该首先去的地方。

  • 问题内容: 我完全被mySQLi弄糊涂了。尽管多年来我一直在使用过程性mysql调用,但我希望习惯于为其提供的db security / mySQL注入保护编写准备好的语句。我正在尝试编写一个简单的select语句(是的,我知道为此进行程序调用可提高性能)。运行时,我会得到所有回声,直到击中组件为止。在我看来,这一切都相当简单,但是在阅读了数小时的mySQLi手册后,我感到茫然。任何想法为什么会失

  • 在连接池中为使用Prepared语句是否良好。(在我的例子中,我使用Tomcat JDBC连接池) 它是否增加了任何优势(加速),或者会增加维护准备好的语句和连接的开销,并使它们保持活动状态,或者跟踪是否关闭池连接,因为池连接是在内部维护的,并且它们会根据此处指定的不同设置关闭 我正在使用获取连接,数据库是MariaDB 在阅读各种帖子、文档和示例时,大多数都是使用或查询构建的。它是否指出对于

  • 问题内容: 目前,我正在与MySQLi一起玩,试图弄清它们的工作原理。在我目前的项目中,我总是喜欢在编码时回显查询字符串,以确保一切正确,并快速调试我的代码。但是…如何使用准备好的MySQLi语句来做到这一点? 例: 我一直在浏览此列表(http://www.php.net/mysqli),但没有任何运气。 编辑 好吧,如果在MySQLi中不可能,也许我会坚持这样的事情: 显然,这还远未达到完美,

  • 问题内容: 停止使用不推荐使用的mysql_ *函数后,我切换到mysqli。但是后来,我注意到未准备好的语句对于SQL注入是不安全的。然后,我再次更改了代码。 我所拥有的是以下函数,该函数检查数据库中是否存在变量 $ ID 并打印该行的 title 值: 我将其更改为: 我的问题是:这是执行准备好的语句的正确方法吗?另外,我现在可以安全使用SQL注入吗?非常感谢任何愿意回答这个问题的人:) 问题

  • 我有一个搜索查询,它必须使用包含搜索搜索表中的一列。列上有CTXSYS.Context类型索引。当使用prepared语句在表中获取数据时,搜索查询不能处理像-、/、_等特殊字符。