我想在数据库表中搜索特定单词,并希望从同一行中的其他列检索文本,并且可能存在多个可能存在该单词的行,所以我希望所有那些行都在那里这个词是。 我正在使用此代码
$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循环变为无限。
提前致谢
答案 0 :(得分:1)
快速解决方法是:
$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注入
您必须添加错误检查和处理
...
答案 1 :(得分:0)
如果您正在启动项目,请使用PDO
$db new PDO('mysql:host=localhost dbname=foo', 'user', 'password');
$sql = 'SELECT file_id FROM hello WHERE field = ? ';
$stmt = $db-prepare($sql);
$stmt->bindValue(1, $word);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $item){
echo $item['key'];
}