php中的prepared语句中的内部联接未正确响应

php中的prepared语句中的内部联接未正确响应,php,mysqli,Php,Mysqli,我有两个表用户和帖子 function get_user_history($email){ $stmt = $this->conn->prepare("SELECT p.video_url, p.comments, p.post_date, p.views FROM `post` as p INNER JOIN users as u ON u.user_id = p.user_id WHERE u.email = ?"); $stmt->bind_param(

我有两个用户和帖子

function get_user_history($email){
    $stmt = $this->conn->prepare("SELECT p.video_url, p.comments, p.post_date, p.views FROM  `post` as p INNER JOIN users as u ON u.user_id = p.user_id WHERE u.email = ?");
    $stmt->bind_param("i", $email);
    $stmt->execute();
    return $stmt;
}

$result = get_user_history("ssntpl.com@gmail.com");
它应该只返回两行post_id 15和16,但它将返回post表中的所有行。如果我使用一个简单的select查询,那么它完全可以正常工作。但在使用联接查询时无法正常工作。
我无法调试它。请为我提供正确的解决方案

如果您对数字使用了错误的参数类型
i
。您的邮件地址是一个字符串,因此必须使用
s
(相应变量的类型为string)

类型: 包含一个或多个字符的字符串,用于指定相应绑定变量的类型:

类型规格字符

Char    Description
i   corresponding variable has type integer
d   corresponding variable has type double
s   corresponding variable has type string
b   corresponding variable is a blob and will be sent in packets

嗯,有很多网站,我更喜欢简单的

非常感谢你解决了我的疑问。我不熟悉PHP中的面向对象编程。你能给我推荐一个像www.w3school.com这样的好网站来学习PHP中的OOP吗。非常感谢您的帮助我的评论与答案无关,但您的表格中一定有一些独特的限制,为什么要插入重复条目,这可能会给您带来麻烦。
Char    Description
i   corresponding variable has type integer
d   corresponding variable has type double
s   corresponding variable has type string
b   corresponding variable is a blob and will be sent in packets