我正在开发预订日历,但我的“addactivity”形式存在问题。基本逻辑是,为每个日期/时间创建一个新的活动对象,并调用函数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期望不同类型的值。事件表结构如下:
name: varchar
date: date
venue: varchar
cost: smallint
spaces: smallint
time: varchar
对不起文字的墙,但是我对前面的文字墙感到沮丧。
编辑:切换到更好的练习:仍然是同样的问题。
答案 0 :(得分:0)
经过一些严肃的禅宗发现后,我意识到$ event_name等是私有变量......只需改为$ this-> event_name,一切正常。无论如何,谢谢你的帮助。至少我的代码现在不是(as)可利用=)