14

可能重复:
mysql_fetch_array() 期望参数 1 是资源,选择中给出的布尔值

这里的简单问题。

我有一个 SELECT 查询

SELECT FROM friendzone WHERE ID = '$editID'"

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

如何访问列值?

$row = mysql_fetch_array($query);

我认为这是没用的,因为我不必制作任何数组。我只有一行!

如果我不把它放到一个While cicle中,并尝试做例如

.$row['ID'].

我得到:

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

提前谢谢大家。

4

3 回答 3

18

请不要mysql_*在新代码中使用函数。它们不再被维护,并且 已经开始弃用过程。看到 红框了吗?改为了解准备好的语句,并使用 PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

尝试:

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

print_r($row);

MySQLi 代码:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$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);
于 2012-12-09T20:35:12.127 回答
3

可能你$query是平等的false,因为出了点问题,试着mysql_error()看看有什么问题。

和 2 个小建议:

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

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

于 2012-12-09T20:37:40.867 回答
-2

因为我不知道您尝试选择哪些列,所以 select 的一般语法是

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

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

"SELECT * FROM friendzone WHERE ID = '$editID'"
于 2012-12-09T20:40:05.770 回答