由于某些原因我似乎无法获取数据插入php和mysql。
我有init.php
的连接字符串,order.ph
个p文件,最后是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");
?>
,连接字符串位于init文件中。
所以我们的想法是,当用户点击买入票时,它会获得当前的Band_id
和user_id
,然后将它们插入到数据库table orders
中的列band_id
和{{} 1}}。
这不是讨厌我只是让我的或user_id
字符串出现。
我的方式有问题吗?
答案 0 :(得分: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']);
其他细节: