内部联接在php

时间:2015-09-24 06:27:59

标签: php mysqli

enter image description here

我有两个用户和发布

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表中的所有行。如果我使用一个简单的选择查询,那么它工作得很好。但是我使用连接查询时工作不正确。 我无法调试它。请给我正确的解决方案

1 个答案:

答案 0 :(得分:3)

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

$stmt->bind_param("s", $email);
  

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

类型规范字符

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

嗯有很多网站,我更喜欢简单的http://php.net/manual/