PHP在SQL中发布变量

时间:2014-01-16 21:13:03

标签: php mysql sql database

我有这个SQL应该根据房间ID来检索房间:

$sql="SELECT room FROM Rooms WHERE roomID = $_POST[roomID]";

(roomID是变量)

为什么这不起作用?

编辑:如果我输入一个数字代替$ _POST [roomID](或$ _POST ['roomID']),代码就可以了

EDIT2:这是我的代码:

while ($row = $result->fetch_assoc()) {
                $date = $row['date'];
            $period = $row['period'];
            $roomID = $row['roomID'];
            $teacherinitials = $row['teacherinitials'];

            $sql2="SELECT room FROM Rooms WHERE roomID = $_POST[roomID]";

            $res=mysqli_query($con,$sql2);

            while ($row2 = $res->fetch_assoc()) {
                    $room = $row2['room'];
                    $description = $row2['description'];
            }

我从用户输入中获取roomID,然后我尝试使用它来查找roomID对应于另一个表中的房间。

1 个答案:

答案 0 :(得分:1)

$sql="SELECT room FROM Rooms WHERE roomID = $_POST[roomID]";  // not working

可能的原因:

  1. $_POST['roomID']未设置
  2. roomID未在您的陈述中引用 - $_POST['roomID']
  3. 您的查询中未引用变量:

    $ roomID = $ _POST ['roomID'];

    $ sql =“选择房间FROM Rooms WHERE roomID ='$ roomID'”;

  4. 无法执行查询 - 这种情况发生了很多。

  5. 查询中使用的未知字段
  6. 任何其他原因
  7. 做一些调试。查看服务器错误日志。

    ...并记住在将用户输入发送到数据库之前将其转义。