【问题标题】:PHP - How to document a prepared statement as parameterPHP - 如何将准备好的语句记录为参数
【发布时间】:2016-03-05 09:12:31
【问题描述】:

我有一个这样的代码 sn-p:

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

现在我想记录“foo”方法,需要一个准备好的语句。

但我只找到\mysqli_stmt 类。

开始编辑

一个“更完整”的例子

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

现在是toJSON($psm) 函数(即上面的foo($ps)

/**
* @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。我找不到与“mysqli_stmt”不同的类,但是使用此代码 PHPStorm 无法识别“execute()”、“get_result()”、“fetch_assoc()”和“close()”。 我想教 PHPStorm,这是一个准备好的语句。

我希望编辑有所帮助。

结束编辑

我正在使用 PHPstorm 和 \mysqli_stmt 它无法找到 `execute()' 等。

tl;博士;

如何将准备好的语句记录为参数,因为\mysqli_stmt 对于 PHPStorm 来说是不够的。

【问题讨论】:

  • 需要更好(更完整)的示例。对我来说(至少)不清楚这里到底需要什么(上下文和问题是什么)。
  • 你的意思是自动完成吗?如果是这样 ` /** * @param \mysqli_stmt $statement */ public function foo(\mysqli_stmt $statement) { }` 为我工作
  • 在 PHPDoc 中将 $data 更改为 $pstmt

标签: php phpstorm


【解决方案1】:

变量名和函数参数名不匹配。在 PHPDoc 中你有 $data 在函数中你有 $pstmt。将 PHPDoc 从 $data 更改为 $pstmt。之后,它应该按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多