【发布时间】:2014-03-28 16:33:29
【问题描述】:
我的插入有一些问题。
我在下面有这段代码,当我点击提交按钮进行订阅时,我没有收到任何错误,但我的数据库中没有收到插入。
这是一个奇怪的情况,因为一切似乎都是正确的:
-> 我没有任何错误信息
-> 如果我回显echo $email; 和echo $code;,则变量具有正确的值
->表名正确
您能在此处看到可能导致此问题的内容吗?
我的 PHP:
<?php
if(isset($_POST['newsletter_subscription']) && $_POST['newsletter_subscription'] == 'register')
{
$email = $_POST['email'];
$code = md5($email);
try
{
$subscription = $pdo->prepare("INSERT into subscriptions (email,code,status) VALUES = :email,:code,:status");
$subscription->bindValue(":email", $email);
$subscription->bindValue(":code", $code);
$subscription->bindValue(":status", 'inactive');
$subscription->execute();
}
catch(PDOException $e)
{
$e->getmessage();
}
}
?>
我的 HTML 表单:
<form action="" name="newsletter" method="post" enctype="multipart/form-data">
<label>
<input type="text"id="email2" name="email" placeholder=" e-mail" required/>
</label>
<br />
<label id="submit">
<input type="hidden" name="newsletter_subscription" value="register" />
<input type="submit" name="register" value="Register" src="" />
</label>
</form>
【问题讨论】:
-
我认为
INSERT的语法不正确。 -
你绑定参数的名字是错误的,把
:codigo改成:code和:estado改成:status -
抱歉,这不是问题所在。我正在翻译英语,我忘记更正那个名字。对不起!
-
PDO 默认不抛出异常。您必须启用一个属性才能做到这一点。见php.net/manual/en/pdo.error-handling.php