這是我在這個網站,所以我很抱歉提前如果有些東西在格式化:)轉換失敗
出來怪異約後的第一篇文章一週搜索互聯網尋找這個問題的答案我想我會給這個網站一個嘗試,因爲它幫助我無數次在過去。
無論如何,我最近開始使用PHP中的PDO與我一直在研究的項目中的MS SQL數據庫進行交互。其中一個表的設置方式基本上都是數字,日期時間和字符字段。我的問題是與日期字段。我正在編寫的腳本是從一個表中複製一行並將其放入另一個具有其自己的ID的文本中 - 我得到的錯誤是因爲原始表具有NULL值,因爲該表中的數據變化很大,的字段是NULL。
爲了解決這個問題,我嘗試了很多不同的方法來獲得NULL值,我寫了一個函數,它用零代替所有的空值。這工作正常,除了日期值 - 註釋它們之後插入語句的工作,因爲它應該 - 然而,他們在我得到「轉換日期時間從字符串轉換失敗。」錯誤,可能是因爲數據庫無法將'0'轉換爲日期時間值。
我該如何解決這個問題?
這是替換NULL值的函數。我覺得我也應該注意到,如果我只保留值NULL,我會得到一個錯誤轉換數據類型nvarchar爲數字。錯誤。
function check_empty($field, $slno){
try{
require("assets/dbcnct.php");
$stmt = $DBH->prepare(" select ". $field ." from timeticket where slno = :slno ");
$stmt->bindParam(':slno', $slno);
$stmt ->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<pre>";
var_dump($result);
echo "</pre>";
foreach($result as $key=>$val){
if(empty($val)){
$val = 0;
}
}
return trim($val);
}
catch(PDOException $e) {
echo "<pre>";
echo $e->getMessage();
echo "</pre>";
}
}
只是要清楚:如果日期爲NULL,應該插入目標表中的什麼?你是否需要在複製時用空字符串或'0'代替NULL,或者你的目標表中是否只有'NULL'值? – Basti 2012-04-04 23:02:32