我使用这个PHP代码从我的数据库中获取价值。
我的问题是我得到了null结果。
我检查!empty($ result)和mysql_num_rows($ result)但仍然得到null结果。
我测试完全我在我的phpmyadmin上的代码中使用的相同查询并且它正常工作。
来自$response["SQL"]
的回音是“好”。
这是我的PHP代码:
$result = mysql_query("SELECT * FROM workouts_wall WHERE workout_name = 'WO13' AND user = 'tomer2'") or die (mysql_error());
// mysql inserting a new row
if (!empty($result))
{
if (mysql_num_rows($result) > 0)
{
$response["SQL"] = "good";
}
else
{
$response["SQL"] = "bad";
}
}
else
{
$response["SQL"] = "bad";
}
$response["is null?"] = $result;
// echoing JSON response
echo json_encode($response);
解决
我添加了这一行来修复它:
$row = mysql_fetch_array($result);
答案 0 :(得分:1)
您不能只返回mysql_query
结果。您必须获取数据。
$data = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
$data[] = $row;
echo(json_encode($data));
//EDIT: Also a good idea when you are done...
mysql_free_result($result);
答案 1 :(得分:0)
mysql_query()
函数返回资源或布尔值。如果您的查询成功(在这种情况下可能是这样),您仍然只是将MySQL资源分配给$response
变量。您需要实际使用mysql_fetch_array()
或mysql_fetch_assoc()
之类的内容来提取返回的数据。
关于不使用mysql_*()
函数:Why shouldn't I use mysql_* functions in PHP?
答案 2 :(得分:0)
试试这个。希望它有效:
$result = mysql_query("SELECT * FROM workouts_wall WHERE workout_name = 'WO13' AND user = 'tomer2'") or die (mysql_error());
// mysql inserting a new row
if (!empty(mysql_fetch_array($result)))
{
if (mysql_num_rows(($result) > 0)
{
$response["SQL"] = "good";
}
else
{
$response["SQL"] = "bad";
}
}
else
{
$response["SQL"] = "bad";
}
$response["is null?"] = $result;
// echoing JSON response
echo json_encode($response);
答案 3 :(得分:0)
没有行的mysql结果是 NOT 为空。它是一个标准的mysql结果句柄,它实际上不包含任何行。它不是错误,它不是空字符串,它不是空数组......它是标准结果句柄,就像任何其他结果句柄一样。
您的代码应为
$result = mysql_query($sql) or die(mysql_error()); // catch the REAL errors
if (mysql_num_rows($result) == 0) {
... result set is empty
}