【问题标题】:insert statement using request and session使用请求和会话插入语句
【发布时间】:2014-01-17 20:05:43
【问题描述】:

由于某种原因,我似乎无法获取插入 php 和 mysql 的数据。

我有一个带有连接字符串的init.php,一个order.php 文件,最后一个band_list.php。 我在将数据导入数据库时​​遇到了一些问题。

数据库有3个表:

order it has id, order_id and band_id columns

users it has id, name and password columns

bands it has Band_id, name and stock columns

band_list.php 向用户显示了乐队演出的详细信息。

    <?php
require 'core/init.php';
    $Band_id = $_GET['id'];
    $result = mysql_query("SELECT * FROM bands WHERE Band_id = $Band_id");

    echo "<table border = '1'>
    <tr>
        <th>Band Name</th>
        <th>Venue</th>
        <th>Category</th>
        <th>Stock</th>
        <th>Add</th>
    </tr>";

     while($row = mysql_fetch_array($result))
        {
            echo "<tr><form name=\"myform\" action=\" order.php\"  method=\"post\">";
           echo "<td> <input name=\"band\" type=\"hidden\" value=\"". $Band_id."\" ></td>";
            echo "<td>" .$row['Name']. "</td>";
            echo "<td>" .$row['Venue']. "</td>";
            echo "<td>" .$row['Category']. "</td>";
            echo "<td>" .$row['Stock']. "</td>";
            echo "<td><button>Buy Ticket</button></td>";
            echo "<td><input type=\" submit\" value=\"Buy Ticket\"></td>";
            echo "</tr> </form>";
        }

    echo "</table>";


    ?>

order.php 具有用于将数据发送到数据库的查询

    <?php
require 'core/init.php';

session_start();
$Band_id = $_REQUEST['Band_id'];
$user_id = $_SESSION['user_id'];

  $sql = "INSERT INTO orders (band_id,user_id) VALUES($Band_id,$user_id)";
mysql_query ($sql, $linkme)
    or die ("could not add to database");
?>

并且连接字符串在一个初始化文件中。

所以这个想法是,当用户点击购买票时,它会获取当前的Band_iduser_id 并将它们插入数据库 table orders 到列 band_iduser_id 中。

这不是快乐我只是得到我的或死("could not add to database");字符串出现。

我的做法有问题吗?

【问题讨论】:

    标签: php mysql database insert


    【解决方案1】:
    <input name=\"band\" type=\"hidden\" value=\"". $Band_id."\" >
    

    而您正在尝试获取 POST 变量“Band_id”(不存在)

    $Band_id = $_REQUEST['Band_id'];
    

    应该是

    $Band_id = mysql_real_escape_string($_REQUEST['band']);
    

    其他细节:

    1. 在 order.php 中,最好将“session_start()”放在 开始(在任何事情之前)
    2. 考虑使用 mysqli 或 PDO 代替已弃用的 mysql
    3. 您可以使用 $_POST 而不是 $_REQUEST 获取乐队 ID,因为您的 表单使用 post 方法发送它

    【讨论】:

    • 让我们看看错误:or die ("could not add to database:" .mysql_error());
    • 不,我的小拼写错误。非常感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2013-03-24
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多