Php 如何使用PDO执行中的整数GET?

Php 如何使用PDO执行中的整数GET?,php,pdo,Php,Pdo,我正在慢慢地尝试理解并从MySQL切换到PDO/MySQLi,现在我想尝试如何使用PDO 我想问您如何使用$\u GET,它通常在执行中设置用户ID(编号)。据我所知,execute只接受字符串,所以我用PDO::PARAM_INT $q = $dbh->prepare('SELECT `content` FROM `inventory` WHERE `id` = ?'); $q->execute(array($_GET['u_id'], PDO::PARAM_INT)); 不

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

我想问您如何使用
$\u GET
,它通常在
执行中设置用户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

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

$q->bindParam(1, $_GET['u_id'], PDO::PARAM_INT);
$q->execute();
在这里,您可以将其清除:

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

.

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

$q->bindParam(1, $_GET['u_id'], PDO::PARAM_INT);
$q->execute();
在这里,您可以将其清除:

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

.

类型说明符仅适用于bindParam。它在数组列表之外没有意义;它将被忽略。类型说明符仅适用于bindParam。它在数组列表之外没有意义;它将被忽略。