[英]prepared statement in php is returning 0 rows
我的數據庫中只有一個表,其中有一行被稱為用戶的行,其中以email和mobile_number為列。我的行的mobile_number列值為9866163987.當我嘗試選擇此手機號值時,我准備好的語句返回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行?該怎么辦?
您的整數被截斷,因為它超出了整數的32位限制。 (正如@Mike Stotts在評論中所說)
您可以使用字符串代替,也可以使用bigint之類的更大的東西。
注意:如果您打算使用bigint,則應考慮添加store_result();。 在bind_result防止內存耗盡之前:請參閱: PHP mysql_stmt :: fetch()使PHP致命錯誤內存耗盡
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.