0

我正在尝试从我的数据库中选择一个列,其中 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 将它们视为相同/相等?感谢您对此的任何帮助。

4

2 回答 2

4

您将 stockid 作为字符串传递(但希望它表现得像一个整数)。尝试

$stockid = intval($_POST['item']);
$sqlbal = "SELECT * FROM db.nonperi where nonperi.stockid = $stockid";

(这也可以保护您的代码以防止 SQL 注入)

于 2015-06-18T06:51:33.873 回答
-1

您可以修剪前导 0(零)以检查 stockId。

SELECT TRIM(LEADING '0' FROM '02454545') 

你的命令应该是:

"SELECT * FROM db.nonperi where nonperi.stockid = TRIM(LEADING '0' FROM '$stockid')";
于 2015-06-18T06:49:14.323 回答