我正在尝试从数据库中选择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注入)

10-01 22:25