Adobe Flex を使用して、PHP 経由でユーザーをデータベースに正常に送信しています。次に、PHP を変更して、まずユーザーがデータベースに存在するかどうかを確認する必要があります。存在する場合は、いくつかのフィールドを更新しますが、それらが新しい場合は、ユーザーを完全に作成する必要があります。存在しないユーザーを作成するために既に確実に機能するコードの部分にコメントしました。どこが間違っているのかわかりません。データベースへの接続に関する部分を削除しました。それはうまくいきます。
public function createUser (User $item)
{
//Checking to see if user exists
$checkdb = mysqli_prepare($this->connection, "SELECT firstname FROM users WHERE id =?");
mysqli_stmt_bind_param($checkdb, "s", $item->id);
mysqli_stmt_execute($checkdb);
mysqli_stmt_fetch($checkdb);
if ($checkdb == 0)
{
// If user exists, create record. This code definitely works.
$stmt = mysqli_prepare($this->connection,
"INSERT INTO users (
id,firstname,lastname,gender,dob,latitude,longitude,datesubmitted)
VALUES (?,?,?,?,?,?,?,?)");
$this->throwExceptionOnError();
mysqli_bind_param($stmt, 'sssssdds', $item->id, $item->firstname,
$item->lastname, $item->gender, $item->dob, $item->latitude,
$item->longitude, $item->datesubmitted);
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
}
//If user does exist, then update record
$stmt = mysqli_prepare($this->connection,
"UPDATE users SET latitude=?,longitude=?,datesubmitted=? WHERE id=?");
$this->throwExceptionOnError();
mysqli_bind_param($stmt, 'dds', $item->latitude,
$item->longitude, $item->datesubmitted);
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
}