2011-02-07 89 views
0

我在mysql數據庫(在我的桌面)中有一些照片(不大,只有8kb)。字段類型是blob。我想將表格導出到xml文件,然後將其上傳到我的數據庫網站。但它不成功。這裏是我做了什麼: 的數據導出到XML(在我的電腦桌面):在PHP中插入圖像二進制數據到MySQL中

FileStream fs = new FileStream(filename,FileMode.Create,FileAccess.Write,FileShare.None); 
StreamWriter sw = new StreamWriter(fs,Encoding.ASCII); 
ds.WriteXml(sw); //write the xml from the dataset ds 

然後從我的Joomla網站上傳的XML。我在將它插入到數據庫之前加載xml

... 
$obj = simplexml_load($filename); 
$cnt = count($obj->mydata); //mydata is the table name in the xml tag 
for($i=0;$i<cnt;$i++) 
{ 
    ... 
    $myphoto = 'NULL'; 
    if(!empty($obj->mydata[$i]->myphoto)) 
    { 
     $myphoto = base64_code($obj->mydata[$i]->myphoto); 
    } 
    //insert to the database 
    $sqlinsert = "insert into jos_myphoto (id,myphoto) values(".$i.",".$myphoto.")"; 
    ... 
} 
... 

它一直告訴我'DB功能失敗'。當$ myphoto的值爲空時,查詢工作正常,但如果$ myphoto不爲null,則會顯示錯誤。我認爲代碼 $myphoto = base64_code($obj->mydata[$i]->myphoto)有問題。 我嘗試刪除base64_code函數,但它不工作。如何解決這個問題呢?對不起,我的英語不好

回答

1

您的數據可能包含需要轉義把mysql_real_escape_string()功能,並嘗試

它始終是一個好習慣使用此功能,節省您從SQL注入也來存儲數據。

並在列數據周圍加引號。

$sqlinsert = "insert into jos_myphoto (id,myphoto) 
values(".$i.",'".mysql_real_eascape_string($myphoto)."')"; 
+0

謝謝,這解決了我的問題。 – satria 2011-02-07 13:04:39

相關問題