使用WHERE子句查询无法使用mysqli bind_param()[关闭]

问题描述 投票:-3回答:2

我正在创建Web服务,我需要从mysql获取一些数据并在移动应用中检索它们。

我整天都在尝试使用WHERE语句进行查询,但没有成功。

普通查询,但是没有WHERE却可以正常工作。

[此外,我在堆栈溢出和其他论坛上也经历了所有类似的问题,但没有一个与我的问题相同。

这是我当前的代码:

<?php

$con=mysqli_connect("Hidden credentials");

if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if ($stmt = $con->prepare("SELECT 
team.id as teamId,
team.team_name as teamName, 
user.id as userId, 
user.username as username, 
team_members.role as role

FROM team_members 
inner join user on team_members.user_id = user.id 
inner join team on team_members.team_id = team.id 
where user.id = ?
")) { 
   $stmt->bind_param("i", $id); 
   $stmt->execute(); 
   $result = $stmt->get_result();

$resultArray = array();
 $tempArray = array();

 while($row = $result->fetch_object())
 {
    $tempArray = $row;
    array_push($resultArray, $tempArray);
 }

 echo json_encode($resultArray);

 $stmt->close();

}
?>

如果删除行where user.id=?,它将正确获取数据。

在phpMyAdmin上运行查询就可以了,所以在查询中没有任何问题。

php mysqli
2个回答
2
投票

变量$id不存在(在您的代码中)。如果要动态设置变量,则可以使用$id = $_GET['id'];。这将从网址中获取值并将其放入变量中!


1
投票

您的查询无效,因为您的变量id不存在(在您显示的代码中。)>

修复:

创建变量id并将一些数据放入此变量。

例如:

$id = 5; 

或动态地:

通过带有GET方法的URL:

$id = $_GET['id'];
  • 这使您可以从URL获取参数。但是您必须通过链接设置此参数。例如:<a href="index.php?id=5">。通过单击此a标签,您将使用参数index.php等于id重定向到页面5
  • 通过POST方法:

例如,您有这个FORM

<form method="post">
    <input type="number" name="id">
    <input type="submit" name="submit">
</form>
  • 提交此FORM后,值将保存在$_POST中。您可以通过$_POST["name"]访问它们。在这种情况下,$_POST["id"]

    $ id = $ _POST [“ id”];

  • 来自会议:

$id = $_SESSION["id"];
  • 但是首先您要定义$_SESSION["id"]。您可以在域的其他页面中访问此变量($ _SESSION [“ id”])。
© www.soinside.com 2019 - 2024. All rights reserved.