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'];
        }
    }

コードが正しいことはわかっていますが、DB をチェックインすると、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 に答える