2016-03-23 33 views
1

我想檢查一個數據庫中的成員id是否是一個整數,但是當我在這個數據上使用is_int函數時,它返回false。主鍵應該是一個int no?爲什麼在主鍵值返回字符串is_int?

$query = $sql->prepare("SELECT * FROM `blog` WHERE `categorie` = 'Dossier' ORDER BY `date_ajout` DESC LIMIT " . $offset . "," . $page_result . " "); 
$query->bindValue(':offset', $offset, PDO::PARAM_INT); 
$query->bindValue(':page_result', $page_result, PDO::PARAM_INT); 
$query->execute(); 
$data = $query->fetchAll(PDO::FETCH_ASSOC); 
foreach ($data as $key => $value) { 
$id = is_int($value['id']); 
    var_dump($id); 
    echo $id; 
} 
+1

你需要使用'is_numeric'嗎? ***注意:** 要測試一個變量是一個數字還是一個數字字符串(比如表單輸入,總是一個字符串),您必須使用'is_numeric()'。* –

+0

我試過的是數字工作,但主鍵類型是整數,所以這就是爲什麼我不明白。 – Trippy

+2

'var_dump($ value ['id']);'或'var_dump($ id);' –

回答

0

我找到了一個解決方案:

if ((is_int($value['id']) != true)) { 
    $id = intval($value['id']); 
} 

現在,它的確定

2

爲了讓PHP從MySQL正確表示數據類型,你需要有MySQL的本機驅動程序(mysqlnd)裝。

鏈接:http://php.net/manual/en/book.mysqlnd.php

當你沒有安裝本地驅動程序有別,PHP必須猜測是什麼類型。最安全的類型是string

函數可以確定一個字符串表示的東西實際上是一個數字是is_numeric

或者,您也可以使用intval($variable)(int)$variable將類型強制爲整數。

+0

噢,我確實安裝了'mysqlnd'。 –

相關問題