1

我正在为我的 android 应用程序使用一个 php 文件来与我正在使用的 mySql DB 进行通信。当我刚刚使用 INSERT 查询时,php 运行良好,但是当我添加 SELECT 查询时,它只是无法将 JSON 返回到我的应用程序。关键是,在我向数据库添加一行后,我想返回新行的 id。id 是具有自动增量的 int。

这是我的 PHP 代码:

<?php

/*
* Following code will create a new product row
* All product details are read from HTTP Post Request
*/

// array for JSON response
$response = array();

// check for required fields
if (isset($_POST['lat']) && isset($_POST['lon']) && isset($_POST['alt'])) {

$name = $_POST['lat'];
$price = $_POST['lon'];
$description = $_POST['alt'];

// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

// mysql inserting a new row
$result = mysql_query("INSERT INTO sits(lat, lon, alt) VALUES($name, $price, $description)");

// check if row inserted or not
if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "sit created.";
    $result2 = mysql_query("SELECT id FROM sits ORDER BY id DESC LIMIT 1")
    while($row = mysql_fetch_array($result2))
    {
       $response["id"]=$row['id'];
    }
    // echoing JSON response
    echo json_encode($response);
} else {
    // failed to insert row
    $response["success"] = 0;
    $response["message"] = "Oops! An error occurred.";

    // echoing JSON response
    echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

// echoing JSON response
echo json_encode($response);
}
?>
4

1 回答 1

1

你肯定需要mysql_insert_id () 。SELECT 查询是不必要的。文档状态:

返回值

上一个查询成功时为 AUTO_INCREMENT 列生成的 ID,如果上一个查询没有生成 AUTO_INCREMENT 值,则为 0,如果没有建立 MySQL 连接,则为 FALSE。

if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "sit created.";
    $response["id"] = mysql_insert_id();
    // echoing JSON response
    echo json_encode($response);
}
于 2012-10-03T22:46:28.867 回答