代码示例
$query = $this->db->prepare( $sql ); // prepare sql
$query->bindParam( 'start', $start, PDO::PARAM_INT ); // bind start
$query->bindParam( 'end', $end, PDO::PARAM_INT ); // bind end
$query->bindParam( 'language', $this->language ); // bind language
$query->bindValue( 'keyword', "%$keyword%" ); // bind keyword
var_dump( $end );
$query->execute();
var_dump( $end );
输出
int 2
string '2' (length=1)
但是...如果我切换绑定的顺序...
$query = $this->db->prepare( $sql ); // prepare sql
$query->bindParam( 'language', $this->language ); // bind language
$query->bindValue( 'keyword', "%$keyword%" ); // bind keyword
$query->bindParam( 'start', $start, PDO::PARAM_INT ); // bind start
$query->bindParam( 'end', $end, PDO::PARAM_INT ); // bind end
var_dump( $end );
$query->execute();
var_dump( $end );
输出
int 2
int 2
PHP 版本:Windows 上的 5.3.8
谁能解释为什么会这样?