簡體   English   中英

PHP中的准備好的語句返回0行

[英]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在評論中所說)

請參閱mysql中int(11)的列大小(以字節為單位)?

您可以使用字符串代替,也可以使用bigint之類的更大的東西。

注意:如果您打算使用bigint,則應考慮添加store_result();。 在bind_result防止內存耗盡之前:請參閱: PHP mysql_stmt :: fetch()使PHP致命錯誤內存耗盡

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM