正如标题中所述,我正在尝试使用从页面指定的查询变量,该变量指向此页面以及来自此页面的表单数据来操作数据库。我似乎无法做到正确,我不知道我做错了什么。代码段如下所示:
<?php
$ware_number = $_GET['id'];
Echo "<form action='usernamecheck.php' method='post'>";
Echo 'Username:<br>';
Echo '<input type="text" name="usernamecheck" size="14"><br>';
Echo 'Password:<br>';
Echo '<input type="password" name="passwordcheck" size="14"><br>';
Echo '<input type="submit" value="Send">';
Echo '</form>';
if (isset($_POST['usernamecheck'])) {
$sql2 = "SELECT * FROM `storedata`.`users` WHERE `username` LIKE '$_POST[usernamecheck]'";
$found_user_id = mysql_query($sql2, $conn);
print $found_user_id;
}
if (isset($_POST['usernamecheck'])) {
$sql3 = "INSERT INTO `storedata`.`basket` (user_id, ware_id, number, complete)
VALUES
('$found_user_id', '$ware_number', 1, 0)";
$derp = mysql_query($sql3, $conn);
print $derp;
}
?>
文档本身是usernamecheck.php,我只是打印试图找到错误。当我检查篮子表时,没有发生任何事情,即使没有显示错误。现在变量$ ware_number导致错误。我做错了什么?
我还在storedata.basket表中创建了user_id和ware_id外键,因为它们是各自表中的主键。这意味着它们只能是特定值,但我正在测试这些值,主要是1和0 ...
答案 0 :(得分:0)
如果未设置$ _GET ['id']怎么办?它会失败。另请阅读PHP中正确使用SQL的信息。您的代码容易受到SQL注入攻击和诸如此类的攻击。
编辑: 更新的一段代码
if(isset$_GET['id'] && is_numeric($_GET['id']))
{
$ware_number = $_GET['id'];
Echo "<form action='usernamecheck.php?id=" . $_GET['id'] . "' method='post'>";
.....