在尝试创建用户可以买卖股票的网站时,我在尝试实施“卖出”选项时遇到以下错误。用户可以输入他们拥有的某些股票的符号,然后网站应该删除所有具有该符号的股票(通过POST方法)。我在sell.php(控制器)中使用以下sql语句:
query("DELETE FROM userstocks WHERE id = ".$_SESSION["id"]."
AND symbol = ". $_POST["symbol"] ) ;
query("UPDATE users SET cash = cash + 200 WHERE id = " . $_SESSION["id"]) ;
render("sellconfirmation.php", ["cash" => $cash]);
但DELETE FROM查询存在一些错误。我收到以下错误:
致命错误:'where子句'中的未知列'fb' 第139行/home/jharvard/vhosts/pset7/includes/functions.php
我觉得这很奇怪,因为当我手动输入实际的'fb'股票(as in: AND symbol = 'symbol' )
时,一切都运行得很好。我希望网站根据用户输入的内容删除股票。
问题:DELETE FROM查询有什么问题?
答案 0 :(得分:2)
将符号添加到符号
query("DELETE FROM userstocks WHERE id = " . $_SESSION["id"] . "
AND symbol = '". $_POST["symbol"]."'" ) ;
修改强>
还可以使用mysqli_real_escape_string或PDO::quote来保护您的字符串。
答案 1 :(得分:2)
您错过了关闭删除查询中的引用。试试这个
query("DELETE FROM userstocks WHERE id = " . $_SESSION["id"] . "
AND symbol = '". $_POST["symbol"]."'" ) ;