【发布时间】:2013-03-24 21:21:55
【问题描述】:
我的代码部分适用于下面的 ELSE 部分。我的部分意思是它没有 INSERT INTO 表,但由于所有验证阶段都是正确的,它会重定向到感谢页面。
我通常期望的既是。插入表格A N D,然后转到感谢页面。
我认为我的情况与准备好的语句有关,所以我研究了http://php.net/manual/en/mysqli.quickstart.prepared-statements.php,但我无法解决我的问题。我收到NO通知、警告或错误。但我的桌子还是空的。你能帮我解决我的错误吗?
谢谢
BR
header( "HTTP/1.1 303 See Other" );
if ($_SESSION['hatalar'] != '')
{
$sonraki_sayfa = sitenin_koku.'yazılar/'.$_SESSION['spesifik_yazi_url'];
header('Location: ' . $sonraki_sayfa);
}
else //verification passed. save the comment + redirect to thanks page.
{
/* YORUMU TABLOYA YAZDIRALIM */
$sorgum = "INSERT INTO tb_yorumlar (kolon_yorumcu_isim, kolon_statu, kolon_yorum, kolon_hangi_yazara, kolon_hangi_basliga, kolon_yorum_tarihi, kolon_ip) VALUES (?, ?, ?, ?, ?, NOW(), ?)";
if ($beyan = $db_baglanti->prepare($sorgum))
{
/* give their values to parameters */
$bindparametre1 = $_POST['yf-isim'];
$bindparametre2 = 'onay';
$bindparametre3 = $_POST['yf-mesaj'];
$bindparametre4 = $_SESSION['spesifik_yazi_yazar'];
$bindparametre5 = $_SESSION['spesifik_yazi_baslik'];
$bindparametre6 = $_SERVER['REMOTE_ADDR'];
/* bind parameters */
if (!$beyan -> bind_param("ssssss", $bindparametre1, $bindparametre2, $bindparametre3, $bindparametre4, $bindparametre5, $bindparametre6))
{echo "parametre atama hatası: (" . $beyan->errno . ") " . $beyan->error;}
/* execute statement */
if (!$beyan->execute())
{echo "Gerçekleştirme hatası: (" . $beyan->errno . ") " . $beyan->error ;}
}
else {echo "Hazırlama hatası: (" . $db_baglanti->errno . ") " . $db_baglanti->error;}
/* TEŞEKKÜR SAYFASINA YÖNLENDİRELİM */
$sonraki_sayfa = sitenin_koku.'yorumunuz-için-teşekkür-ederim';
header('Location: ' . $sonraki_sayfa);
}
【问题讨论】:
-
您要插入的表的结构是什么
-
是否有任何简短的 sql 命令来粘贴结果,因为我的表写起来有点长
-
你确定变量都被赋值了吗?
-
我无法理解。如果没有分配,那么我如何插入特定的正确值
-
检查我的答案 - 我想你可能在这里处理一些空值。代码看起来不错。
标签: php mysql prepared-statement sql-insert