我在mysql数据库中有一些照片(不大,只有8kb)(在我的桌面上)。字段类型是blob。我想将表导出到xml文件,然后将其上传到我的数据库网站。但它没有成功。这就是我所做的: 将数据导出到xml(在我的计算机桌面中):
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.")";
...
}
...
它一直告诉我'数据库功能失败'。当$ myphoto的值为null时,查询效果很好,但如果$ myphoto不为null,则会出现错误。我认为代码有问题
$myphoto = base64_code($obj->mydata[$i]->myphoto)
。
我尝试删除base64_code函数,但它不起作用。如何解决这个问题呢?抱歉我的英文不好
答案 0 :(得分:1)
您的数据可能包含哪些需要转义mysql_real_escape_string()
功能并尝试
使用此功能存储数据始终是一个好习惯,这也可以使您免于sql注入。
并在列数据周围加上引号。
$sqlinsert = "insert into jos_myphoto (id,myphoto)
values(".$i.",'".mysql_real_eascape_string($myphoto)."')";