php - 通过在数据库表中搜索从同一列的不同行检索文本

标签 php mysql database

我想在数据库表中搜索一个特定的词,并想从同一行的其他列中检索文本,并且该词可能存在的行可能不止一行,所以我想要所有那些行词是。 我正在使用这段代码

$found = 'world';
$sql = "SELECT file_id FROM hello WHERE $field = '$found'";
$result = mysql_query( $sql);
$row = mysql_fetch_array($result);
while($row)
{
    echo $row['file_id'];         
} 

所以我的问题是在数据库表中我只有 5 行并且在代码之后只有 2 个可能的 file_id 被打印,但是这个 while 循环变成了无限。

提前致谢

最佳答案

快速修复是这样的:

$found = 'world';
$sql = "SELECT file_id FROM hello WHERE field = '$found'";
$result = mysql_query( $sql);
while($row = mysql_fetch_array($result)) {
    echo $row['file_id'];         
} 

但是还有很多其他的地方需要更正:

  • 使用mysqli扩展,mysql扩展已弃用

  • 你应该使用预处理语句来防止sql注入(inject)

  • 您必须添加错误检查和处理

  • ...

关于php - 通过在数据库表中搜索从同一列的不同行检索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915317/

相关文章:

mysql - 如何计算mysql中不同表中的不同元素?

php - Symfony 3.3 仅复选框未提交表单

php - Doctrine 2 在更新时获得匹配的行数而不是受影响

mysql - RSpec 测试 - Mysql2::Error::ConnectionError

javascript - 查询为空 Node Js Sequelize

sql - 通过单点高效检索重叠的 IP 范围记录

php - 使用 preg_match 查找列表中的所有单词

php - 使用 PHP 进行安全的 SSL/HTTPS API 调用

mysql - 亚马逊的RDS上是否可以使用Cacti监控MySQL?

mysql - 组合访问表