你如何使用GET执行PDO是一个整数?

时间:2014-02-23 02:20:42

标签: php pdo

我正在慢慢地尝试理解并从MySQL切换到PDO / MySQLi,现在我想尝试如何使用PDO。

我想问一下如何使用$_GET(通常在execute中设置用户ID(数字))。据我了解execute,它只接受字符串,因此我尝试使用PDO::PARAM_INT

$q = $dbh->prepare('SELECT `content` FROM `inventory` WHERE `id` = ?'); 

$q->execute(array($_GET['u_id'], PDO::PARAM_INT));

不幸的是它没有解决它。它缺少参数吗?它返回我:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in X on line Y

1 个答案:

答案 0 :(得分:5)

使用PDO::PARAM_INT时,您会使用$q->bindParam(),而您没有这样做:

$q->bindParam(1, $_GET['u_id'], PDO::PARAM_INT);
$q->execute();

在这里,你可以摆脱它:

$q->execute(array($_GET['u_id']));

PDO execute definitely works with non-string parameters; see the manual