出于某种原因,我似乎无法获取数据来插入 php 和 mysql。
我有一个 init.php
,其中包含连接字符串、一个 order.ph
p 文件和一个 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_id
和 user_id
并将它们插入到数据库表orders
中到列 band_id
和 user_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']);
其他详细信息:
- 在order.php中,最好将“session_start()”放在 开始(在任何事情之前)
- 考虑使用 mysqli 或 PDO 而不是已弃用的 mysql
- 您可以使用 $_POST 而不是 $_REQUEST 获取乐队 ID,因为您的 表单用post方法发送
关于php - 使用请求和 session 插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194894/