2011-02-07 26 views
0

mysqlデータベースに(私のデスクトップの)いくつかの写真があります。フィールドの型はblobです。私はxmlファイルにテーブルをエクスポートし、私のデータベースのウェブサイトにアップロードしたいと思います。しかしそれは成功ではありません。 は(私のコンピュータのデスクトップに)データを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の値がnullの場合、クエリは正常に機能しますが、$ 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

関連する問題