2013-01-15 37 views
-1

錯誤信息存在:bind_param失敗但回聲bind_results返回我想要的?

Fatal error: Call to a member function bind_param() on a non-object in /var/www/New/API/Constants.php on line 22

更新了整個constants.php 這是我在constants.php代碼:

session_start(); 
if (isset($_SESSION['real_name'])) 
{ 
    $username = $_SESSION['real_name']; 

    $InnerJoinQuery = $STD->prepare(" 
    SELECT Users.ID, Users.Password, UserInformation.LastName, UserInformation.Firstname, UserInformation.DOB 
    FROM Users 
    INNER JOIN UserInformation 
    ON Users.ID = UserInformation.UserID WHERE Users.Username = ?"); 
    $InnerJoinQuery->bind_param("s", $username); 
    $InnerJoinQuery->execute(); 
    $InnerJoinQuery->bind_result($UID, $Password, $LastName, $Firstname, $DOB); 
    $InnerJoinQuery->fetch(); 

    $_SESSION['UID'] = $UID; 
    $_SESSION['Password'] = $Password; 
    $_SESSION['Firstname'] = $LastName; 
    $_SESSION['LastName'] = $Firstname; 
    $_SESSION['DOB'] = $DOB; 
} 

    echo $UID."<br>".$Password."<br>".$LastName."<br>".$Firstname."<br>".$DOB; 

但是:

echo $UID."<br>".$Password."<br>".$LastName."<br>".$Firstname."<br>".$DOB; 

收益;

5 xxx Gill Daryl 211094

也:

print_r($_SESSION); 

Array ([real_name] => InhumaneSlayer [Password] => xxx [UID] => 5 [Firstname] => Gill [LastName] => Daryl [DOB] => 211094)

釷以上,預計輸出

這是正常嗎?所以bind_param失敗了,但是bind_results正在收集正確的信息?

+0

IF即線22,必須有其他的線的上方此。你可以安置他們嗎?看來問題可能在那裏。 –

+0

更新了整個constants.php – user1968541

+0

爲什麼你在這裏抑制錯誤'@session_start()'? – PeeHaa

回答

0

如果這是你的全頁,你怎麼越來越$STD這我相信是你的連接變量。

如果您包括數據庫和來自不同頁面的此頁面.... 包括您的數據庫文件。

變化:

session_start(); 
if (isset($_SESSION['real_name'])) 
{ 

到:

include "YourFile"; 
session_start(); 
if (isset($_SESSION['real_name'])) 
{ 
+0

我很笨...是的,它的工作。 – user1968541

0

使此:

​​

這樣:

session_start(); 
if (isset($_SESSION['real_name'])) 
{ 
    $username = $_SESSION['real_name']; 

............

$InnerJoinQuery->bind_param("s", $username); 

你檢查過會議是確定這是正在設置。我想你向後有姓和名:

$_SESSION['UID'] = $UID; 
$_SESSION['Password'] = $Password; 
$_SESSION['Firstname'] = $LastName; 
$_SESSION['LastName'] = $Firstname; 
$_SESSION['DOB'] = $DOB; 

嘗試呼應:

echo $_SESSION['UID']."<br/>" ; 
echo $_SESSION['Password']."<br/>" ; 
echo $_SESSION['Firstname']."<br/>" ; 
echo $_SESSION['LastName'] ."<br/>" ; 
echo $_SESSION['DOB'] ."<br/>" ; 
echo $_SESSION['real_name']."<br/>" ; 
+0

錯誤消息仍然存在,我更新了我使用的當前代碼的問題 – user1968541

+0

最近更新的答案是yes,我有print_r($ _ SESSION);並已返回預期結果 – user1968541

+0

更新..vardump準備好的語句,它返回一個'bool(false)',但查詢似乎在$ STD->查詢中工作 – user1968541