2013-12-21 46 views
-1

当我得到建议将我的正常MySQLI查询更改为准备好的语句后,我试图将其全部更改为准备好的语句。唯一的是,我的查询然后不会将信息插入数据库。MySQLI Prepared statement will not insert into DB

我试图用var_dump知道什么是错的,但给人的var_dump我这回:

警告:的var_dump()[function.var突降]:房产访问不是 允许但在/ home/* /域/ ** .NL /的public_html/contact.php 线123上的对象(mysqli_stmt)#3(9){[ “affected_rows”] => NULL [” “NULL”[“num_rows”] => NULL [“param_count”] => NULL [“field_count”] => NULL [“errno”] => NULL [“e RROR “] => NULL [” SQLSTATE “] => NULL [” ID“] => NULL}

我的代码:当我用的mysqli

  $stringMelding = '<div class="attention closable"><strong>Helaas!</strong> Er is helaas een onbekende fout opgetreden met onze database, probeert u het later nog eens.</div>'; 
    $emailSent  = true; 

//Controle spam.  
if($sDatum == $arrayInfoContact['datum'] && $sIPadres == $arrayInfoContact['ipadres']) 
{ 
    $stringMelding = '<div class="warning closable"><strong>Helaas!</strong> U heeft in de afgelopen 24 uur al een bericht verzonden naar onze helpdesk!</div>'; 
} 
else 
{ 
    $stringMelding = '<div class="success closable"><strong>Bedankt!</strong> Uw e-mail is verstuurd naar onze helpdesk, wij zullen zo snel mogelijk contact met u opnemen.</div>'; 

    //Prepared statement. 
    $stmt = $mysqli->prepare("INSERT INTO contact(naam, mailadres, bericht, ipadres, datum) VALUES (?, ?, ?, ?, ?)"); 
    $stmt->bind_param('sssss', $sName, $sEmail, $sMessage, $sIPadres, $sDatum); 

    $sName  = $mysqli->real_escape_string(trim($_POST['author'])); 
    $sEmail = $mysqli->real_escape_string(trim($_POST['email'])); 
    $sMessage = trim(nl2br($_POST['comment'])); 
    $sIPadres = $_SERVER['REMOTE_ADDR']; 
    $sDatum = date('d-m-Y'); 

    $stmt->execute(); 
    $stmt->close(); 
    //End of prepared statement. 

    $mail   = mail($afMail, "Contact || RASolutions", $sBericht, $headers); 

我的查询和整个系统的工作 - >查询,所以查询工作我猜,谢谢你的帮助。

+0

为$ SNAME,$ sEmail,$ sMessage,$ sIpAdres,$ sDatum在当前范围内定义有哪些误区? – Kei

+0

谢谢你,我已经有了范围内的变种,但我注意到$ sIpAdres拼写错误,这是“错误”的事情,没有使我的查询工作。 – RezaM

+1

你在准备好的语句之后定义你的变量? – Machavity

回答

1

添加这些行前连接

ini_set('display_errors',1); 
error_reporting(E_ALL); 
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 

再次运行你的代码,看看它扔

+3

添加这些会解决问题吗? –

+2

这不是一个解决方案,可能会被删除。您的想法属于该问题下的评论。 – Borodin

+1

给男人一条鱼 - 它会养活他一天。教他如何钓鱼 - 这会养活他一辈子。 – mvp

相关问题