2015-05-06 49 views
0

我一直在php中編碼約一個半月。要查詢數據庫,我通常將$mysqli傳遞給我所調用的函數。我將db.php包含在我打電話的地方。代碼有時會起作用,有時無任何原因失敗。我寫了一個頁面,並在那裏引入了一些功能。在我開發的過程中,它工作了上千次。現在它停止傳遞$mysqli對象,並且函數中的代碼開始抱怨,並且沒有理由。我沒有改變任何東西。 發生在很多場合,當我通過$mysqli,它不知道它是否會通過。這是什麼問題?f通過mysqli函數不能如預期的那樣工作

function getsubjectname($mysqli, $subjectid) 
    { 
     $query="select SubjectName from user_subject where SubjectId=?"; 
     $stmt=$mysqli->stmt_init(); 
     $stmt->prepare($query); 
     $stmt->bind_param('i', $subjectid); 
     $stmt->execute(); 
     $stmt->bind_result($SubjectName); 
     $stmt->fetch(); 
     return $SubjectName; 

    } 

在上面的代碼中,它直到現在才收到$ mysqli對象。但現在看不到它。 當我在函數中包含$mysqli=new MySQLi('localhost','root','','spiralblog');時,它就起作用了。

編輯

<div style='font-size:24px;'> 
<?php if(!isset($_GET['subjectid'])) 
{ 
    $row=getpinnedsubject($mysqli, $userid); echo $row['SubjectName']; 
} else { 
echo getsubjectname($mysqli, $_GET['subjectid']); 
}?> 
</div> 

此代碼是在index.php和調用函數是在另一個頁面。致力於功能

+0

認爲我們可能需要更多的信息。使用函數的代碼片段。此外,爲什麼不'if(isset($ mysqli)){echo「No SQL Object」; }'? – Twisty

+1

@Twisty我認爲你的'if'需要一個'!'和一個'return'; – Siguza

+0

mysqli對象:它是否包含在腳本示例的頂部:include_once'includes/db_connect.php'; //無論你有沒有它 – Careen

回答

0

其實我在主頁中包含的頁眉,我做了一個查詢,並沒有關閉stmt對象之後。這是造成意想不到的行爲。所以應該總是關閉stmt。 :)

相關問題