Php 使用请求和会话插入语句

Php 使用请求和会话插入语句,php,mysql,database,insert,Php,Mysql,Database,Insert,由于某些原因,我似乎无法获取插入php和mysql的数据 我有一个带有连接字符串的init.php,一个order.php文件,最后还有一个band\u list.php。 我在将数据输入数据库时遇到一些问题 该数据库有3个表: order它有id、order\u id和band\u id列 用户它有id、name和password列 bands它有Band\u id、name和stock列 band_list.php中有一个向用户显示的band gig详细信息。 <?php re

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

我有一个带有连接字符串的
init.php
,一个
order.ph
p文件,最后还有一个
band\u list.php
。 我在将数据输入数据库时遇到一些问题

该数据库有3个表:

order它有id、order\u id和band\u id列

用户它有id、name和password列

bands它有Band\u id、name和stock列

band_list.php中有一个向用户显示的band gig详细信息。

    <?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");
?>

并且连接字符串位于init文件中

因此,当用户单击buy ticket时,它会获取当前的
Band\u id
user\u id
,并将它们插入数据库
表orders
的to列
Band\u id
user\u id

这并没有发生,我只是得到我的或死
(“无法添加到数据库”)字符串出现

我做这件事的方式有问题吗

<input name=\"band\" type=\"hidden\" value=\"". $Band_id."\" >
应该是

$Band_id = mysql_real_escape_string($_REQUEST['band']);
其他详情:

  • 在order.php中,最好将“session_start()”放在 开始(在任何事情之前)
  • 考虑使用mysqli或PDO代替不推荐使用的mysql
  • 您可以使用$\u POST而不是$\u请求获取乐队id,因为您的 表单使用post方法发送它

  • 让我们看看其中的错误:or die(“无法添加到数据库:”.mysql_error());不,我的小拼写错误。非常感谢你的建议。
    $Band_id = mysql_real_escape_string($_REQUEST['band']);