简单的插入无法从表单工作?

时间:2013-12-08 21:40:38

标签: php sql

这对我不起作用,我在这项工作中一直使用插入和其他所有sql语句,但由于某些原因,这不起作用。

下表的结构如下。

**passenger_journey**
j_id  user_id
142    1
142    14

首先,我要做的是插入登录用户ID,即$ user_id和旅程ID,即$ id。你工作的是变量设置。

我认为可能的问题可能是$ id,因为我是使用GET方法从url获取的。

<?php

    $insert_passenger = "INSERT INTO `passenger_journey` VALUES ('" . mysql_real_escape_string($id) ."','" . mysql_real_escape_string($user_id) . "')";



        if (isset($_POST['submit'])){

        mysql_query($insert_passenger);

        }
    ?>


<form method="POST">
<br/>Add yourself to this journey!<br/> 
<input type ="submit" value="Sign up for this Journey"/>
</form>

这让我疯了几个小时,任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

这不匹配:

<form method="POST">
    <br/>Add yourself to this journey!<br/> 
    <input type ="submit" value="Sign up for this Journey"/>
</form>

if (isset($_POST['submit'])){
    mysql_query($insert_passenger);
}

您需要为提交按钮指定一个名称,以使该if语句为真:

<input type="submit" name="submit" value="Sign up for this Journey"/>

...并且您需要将这些变量传递到表单的操作中,以便能够在$ _GET超全局中使用它们。

<?php
$your_id = // define your id here, I assume in your insert query this should just be null.
$user_id = // define your user id here however you're getting it... sessions...?
?>
<form method="POST" action="?id=<?=$your_id?>&user_id=<?=$user_id?>">

注意:如果您的iduser_id变量来自会话,Cookie等,或者可以在执行插入的脚本中检索到的任何内容,肯定在那里进行操作,而不是在不需要时将其传递给HTML表单。

通常在使用MySQL插入数据时,相关的id列将设置为auto_increment,您要么不传递值,要么传入null,这样您就让它分配自己的价值。你可能应该在这里这样做(虽然我根本不知道你的情况):

$insert_passenger = "INSERT INTO `passenger_journey` VALUES (null,'" . mysql_real_escape_string($_GET['user_id']) . "')";

附注:不仅mysql*被弃用会导致您遇到麻烦,但此脚本容易受到SQL注入和XSS攻击。

  

文档/更多信息: