Php pdo if语句中的错误
我想添加到数据库用户id和fav_id。但前提是它们一起还没有被记录。 我在代码中做了一些错误的事情,因为它一直在添加它。 为什么会这样Php pdo if语句中的错误,php,pdo,Php,Pdo,我想添加到数据库用户id和fav_id。但前提是它们一起还没有被记录。 我在代码中做了一些错误的事情,因为它一直在添加它。 为什么会这样 <?php include '../connect.php'; $fav_id = $_POST['fav_id']; $user_id = $_POST['user_id']; $number = $pdo-> query('SELECT COUNT(*) FROM favourites WHERE user_id = :user_id AN
<?php
include '../connect.php';
$fav_id = $_POST['fav_id'];
$user_id = $_POST['user_id'];
$number = $pdo-> query('SELECT COUNT(*) FROM favourites WHERE user_id = :user_id AND fav_id = fav_id ');
if ($number == 0) {
$pdo->exec("INSERT INTO `favourites` (`fav_id`, `user_id`) VALUES (" . $fav_id . "," . $user_id . ")");
}
else die();
?>
使用fetchColumn()
另外,我认为你应该准备一份声明:user id和fav_id
<?php
include '../connect.php';
$fav_id = $_POST['fav_id'];
$user_id = $_POST['user_id'];
$number = $pdo-> prepare('SELECT COUNT(*) FROM favourites WHERE user_id = :user_id AND fav_id = :fav_id ');
$number ->execute(array(':user_id' => $user_id,':fav_id'=>$fav_id));
if ($number ->fetchColumn() == 0) {
$pdo->exec("INSERT INTO `favourites` (`fav_id`, `user_id`) VALUES (" . $fav_id . "," . $user_id . ")");
}
else die();
?>
您是否在$number上尝试了var_dump?查询返回PDOStatement对象,而不是数字您的count
语句很奇怪。您在哪里分配:用户id
和fav\u id
?还有,为什么一个有:
而另一个没有?@JAL它显示“bool(false)”哦,这意味着查询失败。你没有看到任何错误吗?尝试添加$pdo->setAttribute(“pdo::ATTR_ERRMODE”,pdo::ERRMODE_异常);哦,拜托,这里可以返回FALSE为什么有两个分号<代码>'fav_id'=>$fav_id))@Rasclatt让我来修复它execute()
数组不是有冒号吗<代码>数组(':user\u id'=>$user\u id':fav\u id'=>$fav\u id)这非常有效!谢谢:)我必须在PDO上做更多的工作。与easy mysql相比,我很难理解PDO