【问题标题】:pdo prepared inserts failingpdo 准备好的插入失败
【发布时间】:2011-08-12 18:30:39
【问题描述】:

我无法获取下面的代码来插入数据。

<?php           
    $xml_gsm = null;
    try {
        // normally an include
        $data = new PDO(MYSQL_DSN, MYSQL_USERNAME, MYSQL_PASSWORD);
        $data->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

        $stmt = $data->prepare("INSERT INTO tbl_sms_queue VALUES (fk_userId, fk_campaignId, message_content, gsm) VALUES (:userId, :campId, :message, :gsm);"); 
        foreach($gsms as $number):
            $xml_gsm .= "<gsm messageId='" . $data->lastInsertId() . "'>$number</gsm>";
            $stmt->execute(array(':userId'=>$userId, ':campId'=>$campId, ':message'=>$message, ':gsm'=>$number));
            print_r($data->errorInfo());
        endforeach;
    } catch(PDOException $e) {
        echo $e->getMessage();  
    }
?>

PDO errorInfo 报告 00000 但没有插入任何内容,用户拥有完整的 crud 权限,$gsms 是一个数字数组。

我查看了其他答案,但没有任何适用的答案,我现在被困在这个答案上,感谢任何帮助。

【问题讨论】:

  • 试试PDO::ERRMODE_EXCEPTION而不是PDO::ERRMODE_WARNING

标签: php mysql insert pdo


【解决方案1】:

固定:

我有:

$stmt = $data->prepare("INSERT INTO tbl_sms_queue VALUES (fk_userId, fk_campaignId, message_content, gsm) VALUES (:userId, :campId, :message, :gsm);");

代替:

$stmt = $data->prepare("INSERT INTO tbl_sms_queue (fk_userId, fk_campaignId, message_content, gsm) VALUES (:userId, :campId, :message, :gsm);");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多