php - 使用请求和 session 插入语句

标签 php mysql database insert

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

我有一个 init.php,其中包含连接字符串、一个 order.php 文件和一个 band_list.php。 我在将数据输入数据库时​​遇到一些问题。

数据库有3个表:

order 它有 id、order_id 和 band_id 列

用户有 id、名称和密码列

bands 具有 Band_id、名称和股票列

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 并将它们插入到数据库表orders中到列 band_iduser_id

这并不幸福,我只是得到了我的或死亡(“无法添加到数据库”);字符串出现。

我的做法有问题吗?

最佳答案

<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方法发送

关于php - 使用请求和 session 插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194894/

相关文章:

php - Mysql 查询与 php 查询给我错误的结果

php - Symfony3 : Warning:copy([. ..]Entity/User.php~): 权限被拒绝

mysql - 在 MySQL/MariaDB 中创建存储过程时出错

mysql - #1072 - 表中不存在键列 'Customer_ID'

php - 在 <img> 标签中显示以 # 开头的图像

php - 逐行读取文件返回的字符串

mysql - 需要帮助优化 mysql 查询以使其按索引快速排序

java - 使用 Hibernate/JPA 将 UUID 以二进制形式存储在 Mysql 数据库中以提高性能

database - 哪个数据库最节省空间

php - 如何确认 mailparse PECL 扩展是否已安装并启用?