予約カレンダーを作成していますが、「追加機能」フォームに問題があります。基本的なロジックは、日付/時刻ごとに新しいアクティビティオブジェクトが作成され、関数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
テキストの壁で申し訳ありませんが、前述のテキストの壁に頭をぶつけてイライラしています。
編集:より良い実践に切り替えました:まだ同じ問題。