在PHP / MySQL中只获取一行

时间:2012-12-09 20:32:21

标签: php mysql database fetch

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

这里的简单问题。

我有一个SELECT查询

SELECT FROM friendzone WHERE ID = '$editID'"

我确信这只会给我一行,因为我的数据库中的ID不能重复。

如何访问列值?

$row = mysql_fetch_array($query);

我认为这没用,因为我不需要制作任何数组..我只有一行!

如果我没有将它放入“静止”中,并尝试做到这一点。

.$row['ID'].

我明白了:

mysql_fetch_array() expects parameter 1 to be resource, boolean given

先谢谢大家。

3 个答案:

答案 0 :(得分:11)

  

Please, don't use mysql_* functions in new code。它们不再被维护了   deprecation process已经开始了。见   red box?请转而了解prepared statements,然后使用   PDOMySQLi - this article会帮助您确定哪个。如果你选择   PDO,here is a good tutorial

尝试:

$query = mysql_query("SELECT * FROM friendzone WHERE ID = '$editID'");
$row = mysql_fetch_array($query);

print_r($row);

MySQLi代码:

$conn = new mysqli('host', 'username', 'password', 'database');
$stmt = $conn->prepare("SELECT * FROM friendzone WHERE ID = ?");
$stmt->bind_param("s", $editID);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();

print_r($row);

答案 1 :(得分:2)

可能您的$query等于false因为出了问题,请尝试mysql_error()查看错误。

还有2个小建议:

  1. 最好使用PDO od mysqli,因为不推荐使用mysql_ *函数。

  2. 在将值放入SQL字符串之前至少使用mysql_real_escape_string()来转义值

答案 2 :(得分:0)

由于我不知道您尝试选择哪些列,因此选择的一般语法是

"SELECT column1, column2, column3 FROM friendzone WHERE ID ='$editID'"

或者如果您想选择所有列,只需输入

即可
"SELECT * FROM friendzone WHERE ID = '$editID'"