我有一个PDO插入语句没有插入信息,我不知道为什么。以下是我的发言:
$log = $conn->prepare("insert into log_activity (user, event, date) values(:who, :event, :date)");
$log->bindParam(":who", $name, PDO::PARAM_INT);
$log->bindParam(":event", $event, PDO::PARAM_STR);
$log->bindParam(":date", $date, PDO::PARAM_STR);
$log->execute();
我使用类似的(只是没有日期)进行完美的注册。以下是值:
$name = $_POST['name'];
$event = $_POST['thing'];
$date = $_POST['date'];
我知道那里有值,我没有抛出错误陈述。我已经尝试删除日期,认为它可能是问题,但它仍然无效。我确信我只是遗漏了一些简单的东西,但无法找到它。
由于
答案 0 :(得分:1)
@Jim $name
的确属于INT
类型?
您可以将其留给PDO来确定您知道的类型,您不必明确
$log = $conn->prepare("insert into log_activity (user, event, date) values(:who, :event, :date)");
$log->bindParam(":who", $name);
$log->bindParam(":event", $event);
$log->bindParam(":date", $date);
$log->execute();
或者只是不要绑定:
$log = $conn->prepare("insert into log_activity (user, event, date) values(:who, :event, :date)");
$log->execute(array(':who'=>$name, ':event' => $event, ':date'=> $date));
确保您的连接设置为抛出错误:
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
答案 1 :(得分:0)
,
之后的第一行中缺少:event
。也许这就是问题所在。