我正在为我的网站和我的生活写一个'喜欢'的功能,我无法使用此功能!mysqli返回的行数不正确
假设这是一个简化版本,我的数据库结构:
ID --- POST_ID --- USER_ID
1 --- 1 ----------- 1
2 --- 2 ----------- 1
这是我写的代码:
public function userHasLikedPost($post_id,$user_id){
$this->post_id_clean = sanitize($post_id);
$this->user_id_clean = sanitize($user_id);
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare("SELECT like_type FROM ".$db_table_prefix."post_likes WHERE user_id = ? AND post_id = ?");
$stmt->bind_param("ii", $this->post_id_clean, $this->user_id_clean);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($like_type);
$stmt->fetch();
$result;
if($stmt->num_rows >0){
$result = array("liked" => 1, "like_type" => $like_type);
}else{
$result = array("liked" => 0);
}
return print_r($stmt);
$stmt->close();
}
当我打电话userHasLikedPost(1,1)我的代码将返回正确行数
mysqli_stmt对象([affected_rows] => 1 [INSERT_ID] => 0 [NUM_ROWS] = > [param_count] => 2 [field_count] => 1 [errno] => 0 [error] => [error_list] => Array()[sqlstate] => 00000 [id] => 5)1
但是,如果我呼叫userHasLikedPost(2,1),我会得到不正确的行数。
mysqli_stmt对象([affected_rows] => 0 [INSERT_ID] => 0 [NUM_ROWS] => [param_count] => 2 [FIELD_COUNT] => 1 [错误] => 0 [错误] => [error_list] => Array()[sqlstate] => 00000 [id] => 5)1
这是怎么回事?我正确使用mysqli吗?数据存在于数据库中,如果我在PHPMyAdmin中手动运行查询,我将得到正确的输出。我花了2个小时试图让这一个功能工作......预先感谢任何回复:)
请问您的sanitize函数应用于引号字符串?这只是mysqli也会净化价值的约束。 – karmafunk