MySQL 认为“2015123”与“02015123”不同
MySQL thinks that '2015123' is different from '02015123'
我正在尝试 select 我的数据库中的一列,其中 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'。这就是为什么它 returns 什么都没有。
有没有code/way强制sql将他们视为same/equal?感谢您对此提供的任何帮助。
您可以trim前导 0(零)来检查 stockId。
SELECT TRIM(LEADING '0' FROM '02454545')
你的命令应该是:
"SELECT * FROM db.nonperi where nonperi.stockid = TRIM(LEADING '0' FROM '$stockid')";
您将 stockid 作为字符串传递(但希望它表现得像整数)。
尝试
$stockid = intval($_POST['item']);
$sqlbal = "SELECT * FROM db.nonperi where nonperi.stockid = $stockid";
(这也可以保护您的代码以防止 SQL 注入)
我正在尝试 select 我的数据库中的一列,其中 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'。这就是为什么它 returns 什么都没有。
有没有code/way强制sql将他们视为same/equal?感谢您对此提供的任何帮助。
您可以trim前导 0(零)来检查 stockId。
SELECT TRIM(LEADING '0' FROM '02454545')
你的命令应该是:
"SELECT * FROM db.nonperi where nonperi.stockid = TRIM(LEADING '0' FROM '$stockid')";
您将 stockid 作为字符串传递(但希望它表现得像整数)。 尝试
$stockid = intval($_POST['item']);
$sqlbal = "SELECT * FROM db.nonperi where nonperi.stockid = $stockid";
(这也可以保护您的代码以防止 SQL 注入)