0
我有一個表只有一行稱爲我的數據庫中的用戶與電子郵件和mobile_number,因爲它是columns.My行的mobile_number列值爲9866163987.當我試圖選擇此移動數值我的準備語句返回0 rows.Here是我的代碼。在PHP準備語句返回0行
if($this->checkExists("email",$_POST["registerEmail"]))
{
--some code--
}
if($this->checkExists("mobile_number",$_POST["registerMobileNumber"]))
{
--some code--
}
private function checkExists($field,$value)
{
include("includes/connection.php");
$sql = "SELECT $field FROM users WHERE $field=:value";
$prepare = $connection->prepare($sql);
$prepare->bindParam(":value",$value,PDO::PARAM_STR);
try
{
$prepare->execute();
}
catch(PDOException $e)
{
die($e->getMessage());
}
$count = count($prepare->fetchAll());
echo $count."<br />";
if($count == 1)
{
return true;
}
else
{
return false;
}
}
對於電子郵件它工作正常,返回一行,但對於mobile_number它返回0行?做什麼?
檢查'$ value'的實際值以查看輸入是否有意義。也許這個值發佈不正確。或者它發佈的很好,但它恰好是一個與數據庫中的任何內容不匹配的數字。 – GolezTrol
謝謝你的建議。我檢查了我的數據庫。它正是你說的.mismatching的值。但問題是我插入9866163987,但在數據庫中的其他值2147483647被插入。怎麼辦? –
您是否將手機號碼錶示爲int?聽起來就像你遇到了一個整數溢出問題。嘗試將列更改爲CHAR(10)。你在這一點上堅持的正確價值。 – keelerm