我的PDO插入没有错误...但它没有插入我的数据库

时间:2014-03-28 16:33:29

标签: php mysql sql pdo

我的插入有问题。

我在下面有这个代码,当我点击提交按钮进行订阅时,我没有收到任何错误,但我没有在我的数据库中收到插入内容。

这是一种奇怪的情况,因为一切似乎都是正确的:

- >我没有任何错误消息

- >如果我回显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>

2 个答案:

答案 0 :(得分:3)

您的INSERT语法略有偏差:

"INSERT into subscriptions (email,code,status) VALUES = :email,:code,:status"

应该是

"INSERT into subscriptions (email,code,status) VALUES (:email,:code,:status)"

答案 1 :(得分:2)

您在$codigo中使用sql,但在绑定中使用$code

INSERT也是这样的:

$subscription = $pdo->prepare("INSERT into subscriptions (email,code,status) VALUES (:email,:code,:status)")

总体:

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();
 }