0
我已經嘗試設置中存儲的database.I會議已經通過實施SessionHandlerInterface class.However我havenot使用之前準備好的語句來實現這一點,但現在我想實施以使其SQL注入預處理語句proof.However,當我嘗試prepare方法它顯示我準備沒有定義
方法制備未在類
我甚至試圖延伸mysqli_stmt類,其中包含定義的錯誤準備報表的方法。
這是將會話存儲在數據庫中的會話類的完整代碼。代碼
部分,使這個問題更加清晰
class SysSession implements SessionHandlerInterface
{
private $link;
public function open($savePath, $sessionName)
{
$link = new mysqli("localhost","root","","cakenbake");
if($link){
$this->link = $link;
return true;
}else{
return false;
}
}
public function close()
{
mysqli_close($this->link);
return true;
}
public function read($id)
{
$result = mysqli_query($this->link,"SELECT Session_Data FROM Session WHERE Session_Id = '".$id."' AND Session_Expires > '".date('Y-m-d H:i:s')."'");
/*$result=$this->link->prepare("Some query inside")
* This shows up an error stating prepare method not found
*
*/
if($row = mysqli_fetch_assoc($result)){
return $row['Session_Data'];
}else{
return "";
}
}
您檢查了$ this-> link是否有連接對象? –
連接對象如何?我已經宣佈$鏈接作爲連接對象在開始和使用'$ this->鏈接'我可以訪問它,我想。 –
是的。但檢查您的憑證兩次。還要確保你的「打開」方法先調用。調用該方法後,您可以調用「讀取」方法。 –