php mysql simplexml_load_string()错误mysql_escape_string

时间:2011-05-03 04:47:24

标签: mysql xml simplexml php

我将 MySQL 数据库中的XML文件内容保存为:

$content = mysql_escape_string($content);
$insert = mysql_query("insert into $db_table_xml (url,content) values ('$url','$content')" ); 
//content type : TEXT in MySQL


simplexml_load_string($content);

它会返回错误:

  

警告:simplexml_load_string()   [function.simplexml负载字符串]:   实体:第361行:解析器错误:   AttValue:'预期在   d:\ MKW \ dev的\网络\ PHPnow-1.5.6 \ htdocs中\ YT2 \的common.php   第84行

     

注意:试图获得属性   非对象   d:\ MKW \ dev的\网络\ PHPnow-1.5.6 \ htdocs中\ YT2 \的common.php   第146行

     

警告:提供的参数无效   foreach()in   d:\ MKW \ dev的\网络\ PHPnow-1.5.6 \ htdocs中\ YT2 \的common.php   第146行

2 个答案:

答案 0 :(得分:0)

此错误表示它无效xml,请检查xml文件以查看它是否有任何错误。

查找其中的第361行,可能存在特殊字符或类似错误

编辑。

显然,当你转义xml时,你在xml中引入了无效字符,

使用。

$content_escape = mysql_escape_string($content); 
$insert = mysql_query("insert into $db_table_xml (url,content) values ('$url','$content_escape')" );  //content type : TEXT in MySQL 

现在您的$内容不受影响

答案 1 :(得分:-1)

在我看来,你的变量$ content包含影响字符串终止的单引号。如果是这种情况,这就是你可以做的事情:

$content= addslashes($content);

然后你把它写进你的记录。