2016-03-05 44 views
1

我有一段代碼是這樣的:PHP - 如何起草一份事先準備好的聲明的參數

$pstmt = $connection->prepare($sql); 
foo($pstmt); 

現在我想記錄下「foo」的方法,即需要事先準備好的聲明。

但我只找到\mysqli_stmt類。

BEGIN EDIT

A 「更完整的」 示例

$connection = pwm\MySQLHelper::getConnection(); 
$pstmt = $connection->prepare($sql); 
$pstmt->bind_param("s", $fbToken); 
toJSON($pstmt); 
$pstmt->close(); 
$connection->close(); 

而現在的toJSON($psm)函數(其是從上方

/** 
* @param $data \mysqli_stmt A prepated statement 
*/ 
function toJSON($pstmt) 
{ 
    $pstmt->execute(); 
    $result = $pstmt->get_result(); 
    $rarray = []; 
    while ($row = $result->fetch_assoc()) { 
     $rarray[] = $row; 
    } 
    $result->close(); 
    echo json_encode($rarray); 
} 

的問題是關於PHPDoc的所述foo($ps)。我無法找到與「mysqli_stmt」不同的類,但是通過此代碼,PHPStorm不識別「execute()」,「get_result()」,「fetch_assoc()」和「關()」。 我想教PHPStorm,這是一個準備好的陳述。

我希望編輯幫助。

編輯完

我使用PHPstorm與\mysqli_stmt它是無法找到'執行()」和這樣的。

tl; dr;

如何將準備好的語句記錄爲參數,因爲\mysqli_stmt對於PHPStorm不夠。

+0

需要更好(更完整)的例子。對我而言(至少)不清楚這裏究竟需要什麼(上下文和問題是什麼)。 – LazyOne

+0

你的意思是自動完成?如果是這樣 '/ ** *參數\ mysqli_stmt $聲明 */ 公共函數foo(\ $ mysqli_stmt語句) { }' 工作對我來說 – dops

+1

變化'$ data'到'$ pstmt'在你的PHPDoc。 – mkasberg

回答

0

變量的名稱和函數參數的名稱不匹配。在PHPDoc中,您有$data功能,您有$pstmt。將PHPDoc從$data更改爲$pstmt。之後,它應該按預期工作。