MySQL查询没有用值填充表

时间:2012-10-18 21:43:05

标签: php mysql

我正在开发预订日历,但我的“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

对不起文字的墙,但是我对前面的文字墙感到沮丧。

编辑:切换到更好的练习:仍然是同样的问题。

1 个答案:

答案 0 :(得分:0)

经过一些严肃的禅宗发现后,我意识到$ event_name等是私有变量......只需改为$ this-> event_name,一切正常。无论如何,谢谢你的帮助。至少我的代码现在不是(as)可利用=)

相关问题