相关疑难解决方法(0)

如何回应MySQLi预处理语句?

我现在正在玩MySQLi,试图找出它是如何工作的.在我目前的项目中,我总是喜欢在编码时回显一个查询字符串,只是为了确保一切正确,并快速调试我的代码.但是......我怎么能用准备好的MySQLi语句做到这一点?

例:

$id = 1;
$baz = 'something';

if ($stmt = $mysqli->prepare("SELECT foo FROM bar WHERE id=? AND baz=?")) {
  $stmt->bind_param('is',$id,$baz);
  // how to preview this prepared query before acutally executing it?
  // $stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)

我一直在浏览这个清单(http://www.php.net/mysqli)但没有任何运气.


编辑

好吧,如果从MySQLi内部不可能,也许我会坚持这样的事情:

function preparedQuery($sql,$params) {
  for ($i=0; $i<count($params); $i++) {
    $sql = preg_replace('/\?/',$params[$i],$sql,1);
  }
  return $sql;
}

$id = 1;
$baz = 'something';

$sql = "SELECT foo FROM bar WHERE id=? AND baz=?";

echo preparedQuery($sql,array($id,$baz));

// outputs: SELECT foo …
Run Code Online (Sandbox Code Playgroud)

php mysqli

46
推荐指数
3
解决办法
5万
查看次数

PHP:只能通过引用传递变量

我在第57行收到此错误: $password = str_replace($key, $value, $password, 1);

据我所知,我只传递变量.这是一些更多的背景:

$replace_count = 0;
foreach($replacables as $key => $value)
{
    if($replace_count >= 2)
        break;
    if(strpos($password, $key) !== false)
    {
        $password = str_replace($key, $value, $password, 1);
        $replace_count++;
    }

}
Run Code Online (Sandbox Code Playgroud)

php pass-by-reference

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

php ×2

mysqli ×1

pass-by-reference ×1