SELECT 语句返回第一行而不是查找的记录

Posted

技术标签:

【中文标题】SELECT 语句返回第一行而不是查找的记录【英文标题】:SELECT statement returns first row instead of record that is looked up 【发布时间】:2016-12-16 19:51:00 【问题描述】:

我正在尝试从我的数据库中选择一条记录,但我返回的是表中的第一个记录。无论我尝试什么,第一个都会返回。

这是查询:

$query_task_owner = "select user_id from users where full_name = '$c_task_owner_name'";
$response = @mysqli_query($dbc, $query_task_owner);

然后我尝试测试以查看返回的值:

echo $response or die(mysql_error());

这是我看到第一行的 user_id 的地方。

即使我尝试在查询中输入特定值,如下所示,我得到相同的结果:

$query_task_owner = "select user_id from users where full_name = 'LeBron James'";

我不明白,因为当我直接在 phpMyAdmin 中尝试此查询时,我得到了正确的结果。所以查询本身是正确的。

有什么想法吗?

【问题讨论】:

【参考方案1】:

使用mysqli_fetch_array()获取$response

<?php
$query_task_owner = "select user_id from users where full_name = '$c_task_owner_name'";
$response = @mysqli_query($dbc, $query_task_owner);
$row = mysqli_fetch_array($response,MYSQLI_ASSOC);
echo $row['user_id'];
?>

如果,用户与full name 的相关性更高。然后,使用while loopfetch 全部记录。

<?php
$query_task_owner = "select user_id from users where full_name = '$c_task_owner_name'";
$response = @mysqli_query($dbc, $query_task_owner);
while($row = mysqli_fetch_array($response,MYSQLI_ASSOC))

  echo $row['user_id']."<br>";

?>

【讨论】:

你做的都是正确的。只是错过了获取。 没问题,每个人都会这样。 享受编码 @Armand 是的 1 件简单的事情如果省略就会毁掉一切!再次感谢:-)

以上是关于SELECT 语句返回第一行而不是查找的记录的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery SQL Select 返回键值对而不是两个单独的列

MySql第几行到第几行语句

sql语句里的limit使用方法

用sql语句查找某一行的一个值并返回那个值,怎么写? 请将详细点 ,谢谢

sql语句 分次(多次)获取不重复记录,请高手赐教!

Mysql limit