无法使用php prepared语句将记录插入mysql表

无法使用php prepared语句将记录插入mysql表,php,mysql,prepared-statement,sql-insert,Php,Mysql,Prepared Statement,Sql Insert,我的代码在下面的部分工作。我的部分意思是,它不会插入到表中,但由于所有验证阶段都是正确的,它会重定向到感谢页面。我通常期望的是两者兼而有之。插入表格A N D然后进入感谢页面。我认为我的情况与准备好的陈述有关,所以我研究了一下,但我无法解决我的问题。我没有收到通知、警告或错误。但是我的桌子还是空的。你能帮我解决我的问题吗?谢谢br header( "HTTP/1.1 303 See Other" ); if ($_SESSION['hatalar'] != '') { $son

我的代码在下面的
部分工作。我的部分意思是,它不会插入到表中,但由于所有验证阶段都是正确的,它会重定向到感谢页面。

我通常期望的是两者兼而有之。插入表格A N D然后进入感谢页面。

我认为我的情况与准备好的陈述有关,所以我研究了一下,但我无法解决我的问题。我没有收到通知、警告或错误。但是我的桌子还是空的。你能帮我解决我的问题吗?

谢谢

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);

}

我会注释掉标题位置部分(见下文)并回显这些值——确保插入的值实际上已填充(非空)

if($beyan=$db_baglanti->prepare($sorgum)){
/*将其值指定给参数*/
$BindParameter1=$_POST['yf-isim'];
$BindParameter2='onay';
$BindParameter3=$_POST['yf-mesaj'];
$BindParameter4=$\会话['spesifik\u yazi\u yazar'];
$BindParameter5=$\会话['spesifik\u yazi\u baslik'];
$BindParameter6=$\u服务器['REMOTE\u ADDR'];
如果(!$beyan->bind_param(“ssssss”、$BindParameter1、$BindParameter2、$BindParameter3、$BindParameter4、$BindParameter5、$BindParameter6)){
echo“parametre atama hatas:(“$beyan->errno.””)“$beyan->error;
}
如果(!$beyan->execute()){
echo“Gerçekles,tirme hatas?”:(“$beyan->errno.”),“$beyan->error;
}
}
否则{
回声“Haz?rlama hatas:(“$db_baglanti->errno.”“$db_baglanti->error;
}
/*TES,EKKÜR SAYFASINA YÖNLENDI.RELI.M*/
$sonraki_sayfa=sitenin_koku.‘yorumunuz-için tes,ekkür-ederim’;
//标题(“位置:”.$sonraki_sayfa);
echo$bindParameter1。“
”; echo$bindParameter2。“
”; echo$bindParameter3。“
”; echo$bindParameter4。“
”; echo$bindParameter5。“
”; echo$bindParameter6。“
”;
您要插入的表的结构是什么?是否有任何简短的sql命令来粘贴结果,因为我的表有点长,无法写入?您确定所有变量都被赋值了吗?我不明白。如果没有指定,那么我如何插入特定的正确值检查我的答案-我想您可能正在处理一些空值。代码看起来很好。在我尝试之后,有2个通知和1个错误。错误是(1048)列“kolon_hangi_yazara”不能为空。和2个通知=>通知1:未定义索引:spesifik_yazi_yazar in。。。第85行。注2:未定义索引:spesifik_yazi_baslik in。。。在线86@AndreChenier确保将
session\u start()
添加到要使用
$\u session
变量的任何PHP页面的顶部。这很奇怪,因为我已经启动了会话。如果我再次将session_start()添加到页面顶部,页面会发出通知:一个会话已经启动。@AndreChenier对,您不想重复多次。我只是想确定你有。所以,似乎您有一些空参数(这就是我所想的)。返回到其他页面,确保会话变量设置正确,以便我必须找出会话变量为空的原因。谢谢你,埃文。
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'];

    if (!$beyan->bind_param("ssssss", $bindparametre1, $bindparametre2, $bindparametre3, $bindparametre4, $bindparametre5, $bindparametre6)) {
        echo "parametre atama hatas?: (" . $beyan->errno . ") " . $beyan->error;
    }

    if (!$beyan->execute()) {
        echo "Gerçekles,tirme hatas?: (" . $beyan->errno . ") " . $beyan->error ;
    }
}
else {
    echo "Haz?rlama hatas?: (" . $db_baglanti->errno . ") " . $db_baglanti->error;
}

/* TES,EKKÜR SAYFASINA YÖNLENDI.RELI.M */
$sonraki_sayfa = sitenin_koku.'yorumunuz-için-tes,ekkür-ederim';
//header('Location: ' . $sonraki_sayfa);

echo $bindparametre1 . "<br>";
echo $bindparametre2 . "<br>";
echo $bindparametre3  . "<br>";
echo $bindparametre4  . "<br>";
echo $bindparametre5  . "<br>";
echo $bindparametre6  . "<br>";