-2

以下のような小さな php ページがあり、この挿入から「auto-incremented_id」を返したいと考えています。

唯一の要件は、Android アプリケーションから番号を読み取ることができることです。私はそれを調べることができると確信していますが、SQLそれを返す成功を確認できるコードコードはありますか?

これがphpです:

<?php

//Make connection
$con = mysqli_connect('xxxxx', 'xxxxxxx', 'xxxxx');


//check connection
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//change db to andriodnfp db
mysqli_select_db($con, 'andriodnfp');

$table = 'USER';

$fbid   = htmlspecialchars($_GET["fbid"]);
$social = htmlspecialchars($_GET["social"]);


$name = htmlspecialchars($_GET["name"]);
$name = !empty($name) ? "'$name'" : "NULL";

$fname = htmlspecialchars($_GET["fname"]);
$fname = !empty($fname) ? "'$fname'" : "NULL";

$username = htmlspecialchars($_GET["username"]);
$username = !empty($username) ? "'$username'" : "NULL";

$email = htmlspecialchars($_GET["email"]);
$email = !empty($email) ? "'$email'" : "NULL";

$picture = htmlspecialchars($_GET["picture"]);
$picture = !empty($picture) ? "'$picture'" : "NULL";

$other = htmlspecialchars($_GET["other"]);
$other = !empty($other) ? "'$other'" : "NULL";

if (!$fbid == '') {

    if (!mysqli_query($con, 'INSERT INTO ' . $table . ' ( facebookID, social_outlet, Name, first_name, username, email, picture, significant_other) VALUES ("' . $fbid . '","' . $social . '","' . $name . '","' . $fname . '","' . $username . '","' . $email . '","' . $picture . '","' . $other . '")')) {
        printf("Errormessage: %s\n", mysqli_error($con));
    };
}

mysqli_close($con);

//$posts = array($json);
$posts = array(
    1
);
header('Content-type: application/json');
echo json_encode(array(
    'posts' => $posts
));

?>
4

2 に答える 2

3

これを試して:mysqli_insert_id

if (mysqli_query($con, 'INSERT INTO '.$table.' ( facebookID, social_outlet, Name, first_name, username, email, picture, significant_other) VALUES ("'.$fbid.'","'.$social.'","'.$name.'","'.$fname.'","'.$username.'","'.$email.'","'.$picture.'","'.$other.'")') === false) {
    printf("Errormessage: %s\n", mysqli_error($con));
    die();
}
$id = mysqli_insert_id($con);

また、おそらくdieエラーの後である必要があります。

また、クエリをデータ型と比較する必要があります===。これにより、false と評価される値が返されず、本当に失敗したことが保証されます。-- しかし、挿入のために何かを返した可能性は低いですか?

データベースに次のようなテーブルがあるとします。

id, username, user_level
1, dave, 0
2, jcaruso, 1

整数user_levelであるとします (0 = ユーザー、1 = 管理者)。のような選択を行うSELECT user_level FROM table WHERE id=1と返され、それ0を と比較すると==、真になります。0==false.

于 2013-06-20T05:00:19.880 に答える
1
<?php 
//Make connection
$con = mysqli_connect('xxxxx','xxxxxxx','xxxxx') ;


//check connection
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//change db to andriodnfp db
mysqli_select_db($con, 'andriodnfp');

$table= 'USER';

$fbid = htmlspecialchars($_GET["fbid"]);
$social = htmlspecialchars($_GET["social"]);


$name = htmlspecialchars($_GET["name"]);
$name = !empty($name) ? "'$name'" : "NULL";

$fname = htmlspecialchars($_GET["fname"]);
$fname = !empty($fname) ? "'$fname'" : "NULL";

$username = htmlspecialchars($_GET["username"]);
$username = !empty($username) ? "'$username'" : "NULL";

$email = htmlspecialchars($_GET["email"]);
$email = !empty($email) ? "'$email'" : "NULL";

$picture = htmlspecialchars($_GET["picture"]);
$picture = !empty($picture) ? "'$picture'" : "NULL";

$other = htmlspecialchars($_GET["other"]);
$other = !empty($other) ? "'$other'" : "NULL";

//$posts = array($json);
$posts = array(1);

if (!$fbid == '') {

    if (!mysqli_query($con, 'INSERT INTO '.$table.' ( facebookID, social_outlet, Name, first_name, username, email, picture, significant_other) VALUES ("'.$fbid.'","'.$social.'","'.$name.'","'.$fname.'","'.$username.'","'.$email.'","'.$picture.'","'.$other.'")')) {
        printf("Errormessage: %s\n", mysqli_error($con));
    };

    $auto_id = 'autoincramented_id';

    //passyour primary key here
    $cql  = "SELECT MAX($auto_id) AS primary_id FROM {$table}";

    $result = mysqli_query($con, $cql);

    $id_result = mysql_fetch_assoc($result);

    //$posts = array($json);
    $posts = array('auto_increment_id'=>$id_result['primary_id']);


}

mysqli_close($con);


header('Content-type: application/json');
echo json_encode(array('posts'=>$posts));

?>
于 2013-06-20T04:57:01.607 に答える