当我得到建议将我的正常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);
我的查询和整个系统的工作 - >查询,所以查询工作我猜,谢谢你的帮助。
为$ SNAME,$ sEmail,$ sMessage,$ sIpAdres,$ sDatum在当前范围内定义有哪些误区? – Kei
谢谢你,我已经有了范围内的变种,但我注意到$ sIpAdres拼写错误,这是“错误”的事情,没有使我的查询工作。 – RezaM
你在准备好的语句之后定义你的变量? – Machavity