2014-03-07 82 views
0

對於接受或拒絕友誼請求,我正在更新friendship_id與friendshiprequest相同的行。但是當我點擊接受或拒絕時會拋出錯誤(致命錯誤:調用未定義函數AcceptFriendRequest)。但是我定義了這個函數? (我認爲)。在第一次點擊時,他會拋出錯誤。在第二次點擊時,他拋出錯誤並執行sql。 這是SQL語法:致命錯誤:調用未定義的函數

UPDATE友誼SET friendship_status = '接受' WHERE friendship_id = '89'

這是我的職責。

//接受好友請求

public function AcceptFriendRequest($requestnumber){ 
$db = new Db(); 
$select = "UPDATE friendship SET friendship_status = 'Accepted' 
WHERE friendship_id ='" . $requestnumber . "'"; 
echo $select; 
$result = $db->conn->query($select); 
return; 
} 

這就是我打印:

<?php 
foreach ($friendrequests as $request) { 
echo " 
    <div><p> 
     <a href='profile.php?user_id=".$request['friendship_applicant_id'] . "'> 
      <img src='uploads/" . $request['friendship_applicant_avatar'] . " " . " ' alt='' />" . $request['friendship_applicant_surname'] . $request['friendship_id'] . " " . $request['friendship_applicant_name'] . " 
     </a> has send you a friend request" . " 

     <form action='" . $_SERVER['REQUEST_URI'] . "' method='post'> 
      <button type='submit' name='Accept'>Accept</button> 
      <button type='submit' name='Decline'>Decline</button> 
      <input type='hidden' name='acceptID' value='".$request['friendship_id']."' /> 
      <input type='hidden' name='declineID' value='".$request['friendship_id']."' /> 
     </form> 
    </p></div>"; 
}//foreach 

if (isset($_POST['Accept'])){ 
    $accepted = AcceptFriendRequest($_POST['acceptid']); 

    //echo $accepted; 
} 

if (isset($_POST['Decline'])){ 
     $decline = DeclineFriendRequest($_POST['declineid']); 
} 

?> 

這是當我按一下按鈕我做的:

if (isset($_POST["Accept"])) { 
     try { 


      $requestnumber = $_POST['acceptID']; 
      $friendship -> AcceptFriendRequest($requestnumber); 
      $feedback = "Awesome, You just added a friend!"; 


     } catch(Exception $e) { 
      $feedback = $e -> getMessage(); 

     } 

}

+3

這個文件沒有什麼獲取上非SELECT查詢。你期望數據庫能給你什麼? –

+0

那麼,只要返回查詢? :) –

+0

啊我看...但現在他說,我打電話給未定義的函數AcceptFriendRequest() –

回答

1

我在做一些假設因爲我看不到你的整個代碼庫。

一個名爲fetch_assoc()的函數通常用於從SELECT語句返回一個關聯數組。

因爲您正在刪除並更新,所以沒有真正的數據可以返回。

我想更新您的代碼,以簡單的說:

return; 

return true; 

將有不破壞功能所需的效果。

1

fetch result將與選擇查詢一起工作。

你應該用戶Affected rows功能與UPDATE/DELETE查詢

$result->affected_rows(); // 

而且隨着INSERT查詢

$result->insert_id(); // insert data id 

隨着SELECT查詢

$result->fetch_assoc(); //query result return 
$result->num_rows(); //number of rows return 
+0

謝謝,非常有用! –

1

您只能使用˚F etch_assoc()如果你正在做「SELECT」。在你的情況下,你正在更新/刪除記錄,這就是你遇到錯誤的原因。這些查詢不會返回已刪除記錄的列表,而是會返回一個對象資源,供您檢查查詢是否成功完成。

所以,如果你想檢查你的查詢(更新/刪除)是全成,你可以這樣做:

if($result) { 
    die("success"); 
}else { 
    die("failed"); 
} 

您可以參考有關如何使用fetch_assoc()

相關問題