无法使用php prepared-statement将记录插入到mysql表中

时间:2013-03-24 21:21:55

标签: php mysql prepared-statement sql-insert

我的代码部分适用于下面的 ELSE 部分。我的意思是它没有插入表格,但由于所有验证阶段都是正确的,它会重定向到感谢页面。

我是什么通常期望是两者。插入表格 AND 然后转到感谢页面。

我认为我的情况是关于准备好的陈述所以我研究http://php.net/manual/en/mysqli.quickstart.prepared-statements.php但我无法解决我的情况。我收到通知,警告或错误。但我的桌子还是空的。你能帮忙解决我的过错吗?

感谢

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

}

1 个答案:

答案 0 :(得分:1)

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

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