0

予約カレンダーを作成していますが、「追加機能」フォームに問題があります。基本的なロジックは、日付/時刻ごとに新しいアクティビティオブジェクトが作成され、関数toDataBaseを呼び出して、フォームから情報を取得してデータベースに配置することです。foreachとその他のロジックをすべて削除しました。関連するコードは次のとおりです。

フォームメソッドから:

$name=$_POST['activityname'];
$cost=$_POST['activitycost'];
$spaces=$_POST['activityspaces'];
$venue=$_POST['activityvenue'];
$month=$_POST['month'];
$year=$_POST['year'];
$day=$_POST['day'];
$dates[$count]=date('Y-m-d', mktime($month,$day,$year))
$time=$_POST['activitytime'];

およびtoDataBase関数

public function toDataBase()
{
    $dbc=mysqli_connect($host, $user, $pass,$db);
    if(!$dbc)
    {
        echo ("could not connect".mysqli_connect_error());
        exit();
    }
    $stmt=mysqli_prepare($dbc, "INSERT INTO events(
    name,
    date,
    venue,
    cost,
    spaces,
    time) 
    VALUES (?,?,?,?,?,?)");
    mysqli_stmt_bind_param($stmt,'sssiis',$event_name,$dates,$price,$max_spaces,$venue,$times);
    mysqli_execute($stmt);
    mysqli_stmt_close($stmt);



}

私を最も混乱させているのは、MySQLエラーが発生しないことです。各データフィールドにその値をエコーするメソッドがあるため、アクティビティオブジェクトのデータフィールドがいっぱいになっていることがわかります。すべてのフィールドは問題なく入力されていますが、DBには入力されていません。私の次の仮定は、dbが異なるタイプの値を期待しているということでした。イベントテーブルの構造は次のとおりです。

name: varchar
date: date
venue: varchar
cost: smallint
spaces: smallint
time: varchar

テキストの壁で申し訳ありませんが、前述のテキストの壁に頭をぶつけてイライラしています。

編集:より良い実践に切り替えました:まだ同じ問題。

4

1 に答える 1

0

いくつかの深刻な禅の発見の後、私は$event_nameなどがプライベート変数であることに気付きました...単に$this-> event_nameに変更され、すべて正常に機能しました。とにかく人々の助けをありがとう。少なくとも私のコードは(現在)悪用可能ではありません=)

于 2012-10-21T23:08:59.340 に答える