私はアプリを開発中です。私はいくつかのアプリを公開しましたが、PHPの経験は限られています。このアプリは、mysqlデータベースとPHPスクリプトを使用して、アプリケーションからデータベースにデータを渡します。 POSTを使用してアプリケーションの入力フィールドからデータベースにデータを取得する方法を理解しましたが、何らかの理由でPHPで作成された変数をデータベースに渡す方法がわかりません。 。PHPで作成した変数をmysqlデータベースに渡すには?
私が問題を抱えている変数は、user_id変数です。私はそれをPOST経由でアプリからの入力を渡すregistration.phpスクリプトの中でそれを作成します。ここにコードの関連部分があります。変数はuser_id
という変数を除いてすべて動作します(つまり、列には常に「0」が表示されます)。
EDIT:データベースでは、user_id
列はINT(11)型です。
//I have a whole script prepared for creating the unique user_id, but to keep it simple for
// testing, I'm just using '0000000'.
// This part doesn't work.
$query = "INSERT INTO users (user_id) VALUES ('0000000')";
mysql_query($query);
// everything from here down works:
$query = "INSERT INTO users (username, password, email, firstname, lastname) VALUES (:user, :pass, :email, :firstname, :lastname)";
$query_params = array(
':user' => $_POST['username'],
':pass' => $_POST['password'],
':email' => $_POST['email'],
':firstname' => $_POST['firstName'],
':lastname' => $_POST['lastName'],
);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Failed to run query: " . $ex->getMessage();
die(json_encode($response));
}
エラーが発生しましたか?空のテーブルを使用すると、フィールドuser_idの値が0の新しい行がコードに追加されましたか? –
先行ゼロは無視されます。これは、列のデータ型が 'int'であるためです。したがって、 '00000000'はちょうど' 0'です。 '1'を使用して何が起こるかを確認してください – Terminus
@ s-hunterエラーはありません...テーブルは空ではありません。私は手動でphpMyAdminを使って新しい列user_idを作成しました。はい。新しいユーザーが作成されるたびに、列にゼロが追加されます。 –