我正在尝试从数据库中选择stockid等于从用户输入的stockid的列。这是我的代码如下:
$stockid = $_POST['item'];
//get the current balance of the selected item
$sqlbal = "SELECT * FROM db.nonperi where nonperi.stockid = '$stockid'";
$resultbal = $conn-> query($sqlbal);
if ($resultbal-> num_rows > 0)
{
while ($row = $resultbal -> fetch_assoc())
{
$currbal = $row['bal'];
}
}
我知道该代码是正确的,但是,在数据库中签入时,stockid等于“ 2015123”,但在此页面上为此代码发布的$ stockid是“ 02015123”。这就是为什么它什么也不返回的原因。
是否有任何代码/方式可以强制sql将它们视为相同/相等?我对此表示感谢。
最佳答案
您正在将stockid作为字符串传递(但希望其表现为整数)。
尝试
$stockid = intval($_POST['item']);
$sqlbal = "SELECT * FROM db.nonperi where nonperi.stockid = $stockid";
(这也可以保护您的代码以防止SQL注入)