2011-02-07 2 views
0

mysql 데이터베이스에 내 사진이 있습니다. (크지는 않지만 8kb 만 있습니다.) 필드 유형은 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 함수를 제거하려고하지만 작동하지 않습니다. 이 문제를 해결하는 방법? mysql_real_escape_string() 기능을 넣어 이스케이프 필요가있는 포함되어 있으며 또한 SQL 주입에서 당신을 저장이 기능을 사용하여 데이터를 저장하는 데 그것은 항상

좋은 습관을 시도 할 수 있습니다 내 나쁜 영어

답변

1

귀하의 데이터에 대한 죄송합니다.

그리고 열 데이터 주위에 따옴표를 넣으십시오.

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

감사합니다. 내 문제를 해결하십시오. – satria

관련 문제