2016-11-17 51 views
1

我正在编辑一个可用于iDEAL付款的预制脚本,该脚本可用于here。我想要做的是添加几个字段的形式和数据库。额外的字段在电子邮件模板中显示正常,但不会输入到数据库中。该脚本适用于PHPmailer。未在phpmailer脚本中输入mysql数据库的字段

我想这就是问题的所在:

$stmt = $db->prepare("INSERT INTO tbl_ideal_payments SET 
       ID = ?, datumtijd = NOW(), 
       naamfrom = ?, emailfrom = ?, 
       naamto = ?, emailto = ?, 
       bedrag = ?, descr = ?, 
       mailsubject = ?, mailtekst = ?, 
       ipadres = ?, 
       heenreis = ?, 
       terugreis = ?, 
       postcode = ?, 
       factuurnummer = ?, 
       status = 'open'"); 
//var_dump($stmt); 
$stmt->bind_param('sssssdssss', $session, $naamfrom, $emailfrom, $contact, $emailto, $bedrag, $paydecr, $subject, $mailmsg, $heenreis, $terugreis, $postcode, $factuurnummer, $_SERVER['REMOTE_ADDR']); 

,我试图添加的字段heenreis,terugreis,邮编,和factuurnummer。

完整的代码配置,窗体和上面的脚本可以找到here(似乎有点多贴在这篇文章)。

我在做什么错?

+2

计数这些''sssssdssss''再算上参数,然后在'SET'数列,他们都应该是相同数量的**线索:他们不是当前(10,14,14 )** – RiggsFolly

+0

哦,它们应该全都按照SET列表中提到的列顺序排列 – RiggsFolly

+0

哦,当然。所以它应该是'sssssdssssssss'',对吧? (为什么中间有广告? – Flobin

回答

1

计数数据类型参数'sssssdssss'然后统计参数占位符?,然后统计SET子句中的列,它们应该都是相同的数字。

而且这种情况将已经产生的错误,但你是不是测试错误

在发展,特别是如果你是一个LIVE服务器里的错误报告应该关闭在顶部添加这些行发展脚本,打开错误报告。

<?php 
ini_set('display_errors', 1); 
ini_set('log_errors',1); 
error_reporting(E_ALL); 
// if you are using the MYSQLI_ database extension add this also 
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 


$stmt = $db->prepare("INSERT INTO tbl_ideal_payments SET 
       ID = ?, datumtijd = NOW(), 
       naamfrom = ?, emailfrom = ?, 
       naamto = ?, emailto = ?, 
       bedrag = ?, descr = ?, 
       mailsubject = ?, mailtekst = ?, 
       ipadres = ?, 
       heenreis = ?, 
       terugreis = ?, 
       postcode = ?, 
       factuurnummer = ?, 
       status = 'open'"); 

// also add error test 
if (!$stmt) { 
    echo $db->error; 
    exit; 
} 

// now add the 4 missing data type parameters 
// I have assumed they are all string !!! 
// You should check with your schema what datatype they actually are 

$stmt->bind_param('sssssdssssssss', $session, 
            $naamfrom, 
            $emailfrom, 
            $contact, 
            $emailto, 
            $bedrag, 
            $paydecr, 
            $subject, 
            $mailmsg, 
            $heenreis, 
            $terugreis, 
            $postcode, 
            $factuurnummer, 
            $_SERVER['REMOTE_ADDR'] 
       ); 
相关问题