Php PDO和动态请求不起作用
我有以下代码:Php PDO和动态请求不起作用,php,mysql,pdo,Php,Mysql,Pdo,我有以下代码: $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($siz
$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);
打印返回:
数组[0]=>数组[size]=>0[0]=>0
但这是我的数据库mysql
我不明白为什么我的计数*返回0,通常它应该返回3
根据评论进行编辑
这是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,而我的$\u帖子中的uid值是10152434954117198
$sth = $dbh->prepare('SELECT COUNT(*) as size FROM `users` WHERE uid = ?');
$sth->bindValue(1, $_POST['uid']);
// $_POST['uid'] == 2147483647
$sth->execute();
$size = $sth->fetchAll();
print_r($size);
或者你也可以试试这个
$sth = $dbh->prepare('SELECT COUNT(*) as size FROM `users` WHERE uid = :uidVal');
// $_POST['uid'] == 2147483647
$sth->execute([
"uidVal" => $_POST['uid']
]);
$size = $sth->fetchAll();
print_r($size);
uid值对于我的数据库配置来说太大了:
10152434954117198是一个长而不是整数的@在代码中保留它。再次检查$\u POST['uid']@Debflav i等待一个结果是的,计数*@R3tep:var\u dump$\u POST并显示输出。此外,我在这里闻到整数溢出。。。。