如果 mySQL 查询返回 true,则返回 JSON 字符串


Return a JSON string if mySQL query returns true

我有一个PHP代码,它将运行一个选择查询来检查是否存在特定的personName。如果它存在,我们应该返回一个JSON说明这一点,如果不存在,我们应该发送一个JSON响应,说明相同的内容。

到目前为止我的代码;

$rst= mysql_query("select* from Person
where personname='Labby'");

 while($r= mysql_fetch_array($rst) ){
// Now what ??
}

我怎么知道$rst= mysql_query("select* from Person where personname='Labby'"); 返回的是真还是假?,并在此基础上创建一个 JSON 响应。我该怎么做?

将查询切换为使用 COUNT(*) 并检索值,或使用 mysql_num_rows()(或 mysqli 或 PDO 等效项)。

对于返回结果集的 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他语句,mysql_query() 在成功时返回资源,在错误时返回 FALSE。

从 http://php.net/manual/en/function.mysql-query.php:

// Perform Query
$result = mysql_query($query);
// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "'n";
    $message .= 'Whole query: ' . $query;
    die($message);
}
// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
 }

在处理提取之前,您应该先测试$rst是否为 NULL。

if($rst)
    while($r = mysql_fetch_array)

Mysql_query文档:

返回值

对于返回结果集的 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他语句,mysql_query() 在成功时返回资源,在错误时返回 FALSE。

对于其他类型的 SQL 语句,INSERT、UPDATE、DELETE、DROP 等,mysql_query() 在成功时返回 TRUE,在出错时返回 FALSE。

返回的结果资源应该传递给 mysql_fetch_array() 和其他用于处理结果表的函数,以访问返回的数据。

使用 mysql_num_rows() 查找 SELECT 语句返回的行数,或使用 mysql_affected_rows() 查找受 DELETE、INSERT、REPLACE 或 UPDATE 语句影响的行数。

如果用户无权访问查询引用的表,mysql_query() 也将失败并返回 FALSE。

这里的

诀窍是意识到如果找不到任何内容,$r将是假的,这意味着如果mysql找不到你要找的东西,循环将退出(或永远不会开始)。

您可以执行以下操作:

$rst= mysql_query("select* from Person
where personname='Labby'");
$return = array();
while($r= mysql_fetch_array($rst) ){
    $return[] = $r;
}
if (count($return) > 0) {
    echo json_encode($return);
}
else {
    echo '{"success": false}'
}

显然,您需要将"true"和"false"返回值调整为对您的应用程序有意义的值