0

所以正如标题中所说,我试图使用从指向这个页面的页面给出的查询变量和来自这个页面的表单数据来操作数据库。我似乎做错了,我不知道我做错了什么。代码片段如下所示:

<?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...

4

1 回答 1

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'>";
.....
于 2013-06-13T12:08:57.793 回答