2013-07-02 226 views
-4

我在使用php腳本時遇到了一些麻煩。SQL查詢總是失敗

if(!empty($_POST['iblogtitle'])) 
{ 
    $ptitle = mysqli_real_escape_string($link, $_POST['iblogtitle']); 
    $pcontent = mysqli_real_escape_string($link, $_POST['iblogcontent']); 
    $pblogid = mysqli_real_escape_string($link, $_POST['iblogid']); 
    $query = "UPDATE blog SET PostTitle='" . $ptitle . "', PostContent='" . $pcontent . "', PostDate=NOW() WHERE PostID='" . $pblogid . "'"; 
    $sql = mysqli_query($link, $query); 

    if($sql) 
    { 
     header("LOCATION: blog.php"); 
    } 
    else 
    { 
     $result = "Blog update failed: " . mysqli_error($link) . "/" . $query; 
     echo $result; 
    } 
} 

我的問題是進入這個if語句時,顯然$_POST['iblogtitle']必須有一個值。但是,我已檢查並重新檢查,甚至將$query更改爲不包含mysqli_real_escape_string值,並且每次都收到失敗的更新。

收到錯誤:

Blog update failed:/UPDATE blog SET PostTitle='', PostContent='', PostDate=NOW() WHERE PostID=''

沒有實際的MySQL錯誤。我確定error_reporting已關閉,甚至將其設置爲僅位於變量聲明之上的error_reporting(1)

+0

你能迴應'$ query'嗎? – silkfire

+0

@silkfire他已經這麼做了 – tlenss

+3

''我已經確認error_reporting已關閉「**這就是你做錯了。**'error_reporting(E_ALL);'它必須是 –

回答

0

請將腳本全部張貼出來,以便我可以看一看。

有時$ link可能無效,因爲你忘記了包含連接的聲音,愚蠢的是事實。

+0

我其實只是包括我的「base.php」,其中包括我的連接細節,一切工作正常。我現在唯一的疑問是,我不明白爲什麼這不起作用。我展示你們的劇本是這樣的: 'blog.php的>如果$ _GET [ 'blogid'] = X>包括 「blogedit.php」' blog.php的已經包括base.php 所以爲什麼沒有拖延? – user2195574

+0

可能是因爲它的參數有點怪怪的包含在包含或朝向那個方向。 因此,如果我正確一切正在工作? – Tredged

+0

想通了!我包含了header.php,其中包括if語句中的base.php,其中包括上面的腳本。埃爾戈,標題從來沒有被稱爲,也不是基地。 $ link不存在! – user2195574