3 回答
TA贡献1796条经验 获得超10个赞
您正在使用 table 的别名,但在 select 中您使用的是 table 的名称..这会给您带来错误。
同样在 where 条件绑定参数
试试这个代码:
$uid = $_GET['pid'];
$query = "SELECT tableUsers.*, tableProduct.* FROM users tableUsers JOIN all_product tableProduct ON tableUsers.uid = tableProduct.product_id WHERE tableProduct.product_id = :product_id";
$statement = $con->prepare($query);
$statement->bindParam(':product_id', $uid, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row){
echo $row['id'];
echo $row['username'];
echo $row['p_name'];
}
TA贡献1829条经验 获得超4个赞
我认为您的查询有点错误。你应该这样做:
table_name as table_alias
所以在你的情况下:
$query = "SELECT users.*, tableProduct.* FROM tableUsers as users JOIN all_product as tableProduct ON tableUsers.uid = tableProduct.product_id WHERE tableProduct.product_id = tableUsers.$uid";
br
TA贡献1853条经验 获得超9个赞
确保你真的有一个名为 users 的表,如果你使用表别名,请尝试在任何地方使用这些
$query = "SELECT tableUsers.*, tableProduct.*
FROM users tableUsers
JOIN all_product tableProduct ON tableUsers.uid = tableProduct.product_id
WHERE tableProduct.product_id = tableUsers.$uid";
无论如何你不应该在 sql 中使用 php var .. 你有 sqljection 的风险.. 尝试看看准备好的语句和绑定参数
- 3 回答
- 0 关注
- 151 浏览
添加回答
举报