0

私はp4aアプリケーションフレームワークを使用しています。以前に作成したフィールドを介してデータベースに行を挿入する必要があります。ユーザーが送信を押すと、データベースが更新され、他の新しい行を作成できるはずです。

データベースにデータを入力する方法を見つけるのに苦労しています。SQLステートメントに値を入力することで簡単に行うことができますが、これは私にとって完全に異質です。

コードは次のとおりです。

public function submit()

{

    $location = $this->location->getNewValue();           
        $date = $this->date->getNewValue();
        $merono = $this->merono->getNewValue();

    $sql = $db->query("INSERT INTO 'meetingrooms'(location, date, merono)
        VALUES
        ($location, $date, $merono)");


    p4a_db::singleton()->newRow($sql, array($location));

$this->load();

場所、日付、メロノはすべて、この関数の前に作成したフィールドに設定されており、以前にログイン ページに対して同じことを行ったように機能するはずなので、最初のセクションで変数を取得する必要があることがわかります。以前にデータベースにアクセスしたことがあるので、接続していることを知っているので、MySQLステートメントに関係している必要があります。

ありがとう、
スティーブ。

4

2 に答える 2

2

backtickクエリで、テーブル名を一重引用符で囲んでいることがわかりました。代わりにtableName または columnName を使用してエスケープしたい場合は、

INSERT INTO `meetingrooms`(location, date, merono)
       VALUES ($location, $date, $merono)

ただし、tableName は予約語ではないか、無効な文字が含まれているため、バッククォートを取り除くことができます。

テーブルに数値以外の値を挿入する場合は、一重引用符で囲みます。

INSERT INTO meetingrooms (location, date, merono)
       VALUES ('$location', '$date', '$merono')
于 2012-11-09T11:41:51.193 に答える
1

私はついにそれを理解することができました(この質問は数分間しかアクティブではありませんでしたが、XD)

SQLステートメントは最初は間違っていました(ジョン・ウーの助けに感謝します(y))ステートメントは次のようになります。

query("INSERT INTO meetingrooms(location, date, merono)
        VALUES
        ('$location', '$date', '$merono')");

この成功したステートメントにより、$location $date および $merono に配置された変数をテーブルに挿入し、さらにステートメントの先頭に追加することができます。

次のようになります。

p4a_db::singleton()->

これは、私が作成したこのポップアップ クラスではアクセスできない P4A データベース拡張機能を呼び出します。

したがって、完全な機能は次のようになります:-

public function submit()

{

    $location = $this->AreaName->getNewValue();
    $date = $this->date->getNewValue();
    $merono = $this->merono->getNewValue();

    p4a_db::singleton()->query("INSERT INTO meetingrooms(location, date, merono)
        VALUES
        ('$location', '$date', '$merono')");

助けてくれてありがとう、

スティーブ。

于 2012-11-09T12:27:29.130 に答える