【发布时间】:2014-09-23 12:59:22
【问题描述】:
我有以下代码:
$sth = $dbh->prepare('SELECT COUNT(*) as size FROM `users` WHERE uid = :uidVal');
$sth->bindValue(':uidVal', $_POST['uid'], PDO::PARAM_INT);
// $_POST['uid'] == 2147483647
$sth->execute();
$size = $sth->fetchAll();
print_r($size);
print_r() 返回:
数组([0] => 数组([大小] => 0 [0] => 0))
但这是我的数据库(mysql)
我不明白为什么我的COUNT(*) 返回 0,通常它应该返回 3?
编辑(基于 cmets)
这是我在 select 语句之后的代码:
$stmt = $dbh->prepare("INSERT INTO `users` (uid, uname) VALUES (?, ?)");
$stmt->bindParam(1, $uid);
$stmt->bindParam(2, $name);
// insertion d'une ligne
$name = $_POST['uname'];
$uid = $_POST['uid'];
$stmt->execute();
为什么在我的数据库中 uid 值是 2147483647 而我的 $_POST 中的 uid 值是 10152434954117198
【问题讨论】:
-
@Linger 在代码中。
-
复查
$_POST['uid'] -
@Debflav 我在等待一个结果是的,计数(*)
-
@R3tep: var_dump($_POST) 并向我们展示输出。
-
另外,我在这里闻到整数溢出的味道......