2013-10-08 50 views
1

請幫助我。 我insered爲VARCHAR列PDO插入特定的數據類型

$nul='mystring'; 
$STH->bindParam(':param',$nul , PDO::PARAM_INT); 

如果PDO :: PARAM_INT意味着進入數據庫插入數(INT)$ NUL = 0!有一個記錄字符串'mystring'。這是爲什麼?

回答

3

PHP PDO::bindParam() data types.. how does it work?

PDO :: PARAM_INT只布爾轉換爲整數。沒有其他的。

如果你想將字符串轉換爲int使用INTVAL

+3

或簡單地施放它:'$ STH-> bindParam(':param',(int)$ nul,PDO :: PARAM_INT);' – h2ooooooo

+0

好的答案!謝謝 –

+0

真的,你也可以施放它。技術上講,演員陣容更快。 –

2

假設我正確理解你的問題,你想要的數值爲空(不確定的值),在數據庫中,但在實踐中你得到的字符串「NUL」。

如果要設置一些爲null,它並不需要撇號。

// Setting the value of the string 
$string_to_insert = 'my_string'; 

// Checks that the string has a value, if not sets to NULL 
$value = isset($string_to_insert) ? $string_to_insert : null; 

// Bind the parameter 
$STH->bindParam(':param', $value, PDO::PARAM_INT); 

如果你在它周圍放置了撇號,你會在你的數據庫中接收到這個文字字符串。

NULL是一個常數,檢查出的文檔這裏http://www.php.net/manual/en/language.types.null.php

+0

我很抱歉,我沒有帶來一個很好的例子。我想說任何字符串,不是null。非常感謝您對您的例子 –

+0

,以便它檢查存在插入值我已經改變了,如果不是它設置爲null。這是否回答這個問題? – Luke