为什么当我期望多行时,我的 MySQL 查询只返回一行?

Susan Sarandon
发布: 2024-11-02 17:27:29
原创
397 人浏览过

Why Does My MySQL Query Only Return One Row When I Expect Multiple?

更正错误显示的 MySQL 行

面临 MySQL 仅返回一行的问题,而预期结果应该是多行?让我们探索一下这段 PHP 代码:

<code class="php">$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
$query2 = mysql_fetch_assoc($query);
print_r($query2);</code>
登录后复制

此代码旨在根据搜索查询从快速搜索表中获取前五个匹配行。然而,这个问题是由于 mysql_fetch_assoc 的错误使用而产生的。

使用 While 循环迭代行

要解决这个问题,我们需要使用 while 循环迭代所有匹配的行并一一显示它们。这是更正后的代码:

<code class="php">$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}</code>
登录后复制

在此更新的代码中:

  1. $query 变量拼写正确。
  2. 使用 while 循环进行迭代结果集。
  3. $row 在循环内使用 mysql_fetch_assoc 分配当前行。
  4. print_r($row) 每次通过循环都会显示当前行。

附加说明:

  • 确保在 PHP 配置中安装并启用了 MySQL 扩展。
  • 验证 $q 变量是否包含正确的内容搜索查询。
  • 行以关联数组的形式返回,其中字段名称是键。
  • 更正后的代码将显示指定限制内​​的所有匹配行(本例中为 5 行) .

以上是为什么当我期望多行时,我的 MySQL 查询只返回一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!