2012-10-10 43 views
0

我有我的MySQL查詢中的錯誤,我從PHP運行但無法看到它。 首先,我將從代碼的開始處開始,以便了解它是如何啓動的,但是最終的問題是查詢。插入和更新的MySQL查詢錯誤,但我看不到它

if (!isset($_GET['pageid']) and !isset($_POST['pageid']) and !isset($_GET['lang_code']) and !isset($_POST['lang_code']) and !isset($_GET['new']) and !isset($_POST['new'])) { 

if(isset($_POST['submit'])) 
{ 
    $pageid=$_POST['pageid2']; 
    $lang_code=$_POST['lang_code2']; 
    $id=$_POST['id2']; 
    $new2=$_POST['new2']; 

    if (empty($_POST['title'])) 
    { 
     $errors[]=MSG_FORGOT_TITLE; 
    } 
    else { 
     $title = $_POST['title']; 
    } 

    if (empty($_POST['content'])) { 
     $errors[]=MSG_REQUEST_CONTENTL30; 
    } 
    else { 
     $content = $_POST['content']; 
    } 

    if (!empty($errors)) { 
     $s=MSG_ERROR . '\n' . MSG_FOLLOWING_ERROR . '\n'; 
     foreach ($errors as $msg) { // Print each error. 
      $s .=' - ' . $msg . '\n ' ; 
     } 
     $s .=MSG_TRY_AGAIN; 
    } 
    else 
    { 

這是查詢是錯誤的:

 if($new2=="new"){ 
      $q = "INSERT INTO pages (title, content, author, lang_code, page_id) VALUES ('$title', '$content', '$fusername', '$lang_code', '$pageid')";  
      $r = @mysqli_query ($dbc, $q); // Run the query. 
      if($r){ 
       $success=true; 
       require_once ('includes/login_functions.inc.php'); 
       $url = absolute_url(); 
       $url = absolute_url("editpages.php?success=new"); 
       header("Location: $url"); 
      } 
      else{ 
       $s ="<br />GREŠKA NEW"; 
      } 
     } 
     else{ 
      $q = "UPDATE pages SET title='$title', content='$content', author='$fusername' WHERE id='$id' ";   
      $r = @mysqli_query($dbc, $q); // Run the query. 
      if($r){ 
       $success=true; 
       require_once ('includes/login_functions.inc.php'); 
       $url = absolute_url(); 
       $url = absolute_url("editpages.php?success=update"); 
       header("Location: $url"); 
      } 
      else{ 
       $s ="<br />GREŠKA UPDATE"; 
      } 
     } 
} 
else{ 
    require_once ('includes/login_functions.inc.php'); 
    $url = absolute_url("editpages.php"); 
    header("Location: $url"); 
    exit(); 
} 
} 

我在做的是,這個網頁上,如果改變了它應該更新我已加載從數據庫中的內容,然後。如果沒有內容(新),應該將其插入表中作爲新行。一切順利,直到我點擊「提交」,然後我收到錯誤「GREŠKAUPDATE」,它說mysql查詢更新沒有運行。爲什麼?同樣的事情發生在「插入」。

加入echo mysqli_error();後,我得到這個:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/.../editselectedpage.php on line 82 
+2

將'echo mysqli_error();'添加到您的'else'。它會告訴你確切的錯誤。 –

+0

順便提一下,你的查詢對SQL注入攻擊是開放的。 – sed

+0

Qmal謝謝你的提示。你有什麼建議,如何使他們不那麼可扭曲? – Oktarin

回答

0

已經設置您的數據庫細節$dbc

此外,這可能是一個菜鳥問題,但爲什麼你在@mysqli_query()之前加上@符號?

+0

是的,是的。 $ dbc可以很好地處理其他查詢。 – Oktarin

+0

AAAAAAAAAAAAAAA! 我只想拍自己!我忘記改變順序,並把MySQL連接之前查詢... – Oktarin

0

AAAAAAAAAAAAAAA!我只想拍攝自己!我忘了更改順序,並在查詢之前將mysql連接...