高手请帮忙看看这段php代码有什么问题,老是报错!谢谢啦!

<?php$conn=mysql_connect(‘hostname’,‘username’,‘password’)ordie(‘Errorconnectingtomys... <?php $conn = mysql_connect(‘hostname’, ‘username’, ‘password’) or die (‘Error connecting to mysql’);
mysql_select_db(‘DB name’, $conn) or die (‘Error connecting to database’);?>
<?php function getXML($sql="Default Query")
{
$results = mysql_query($sql);

$count = 0;

$data = array();

while ( $row = mysql_fetch_array($results))

{

$result[$count] = $row;

$count++;

}

$columns=";

for($i=0;$i < count($result);$i++)
{

$columns.=’<item>’;

$columns.=’<title>’;
$columns.=$result[$i]['name'];
$columns.=’</title>’;

$columns.=’<link>’;
$columns.= "http://www.example.com/".$result[$i]['link'];
$columns.=’</link>’;

$columns.=’<description>’;
$columns.=$result[$i]['Description'];
$columns.=’</description>’;
$columns.=’<g:image_link>’;
$columns.="http://www.example.com/".$result[$i]['image'];
$columns.=’</g:image_link>’;

$columns.=’<g:price>’;
$columns.=$result[$i]['Price'];
$columns.=’</g:price>’;

$columns.=’<g:condition>’;
$columns.=’new’;
$columns.=’</g:condition>’;

$columns.=’<g:id>’;
$columns.=$result[$i]['id'];
$columns.=’</g:id>’;

$columns.=’</item>’;

}
$content=’<?xml version="1.0″?>
<rss version="2.0″ xmlns:g="http://base.google.com/ns/1.0″>’;
$content.=’
<channel>’;
$content.=’
<title>Example</title>
‘;
$content.=’
<link>

http://www.example.com

</link>
‘;
$content.=’
<description>Example</description>
‘;
$content.=$columns;
$content.=’</channel>
‘;
$content.=’</rss>
‘;

$res = update_xml_file($content);

}
getXML("SELECT id,name,description,price,link,image FROM tablename");

function update_xml_file($content)
{
global $HTTP_POST_VARS;
$filename = ‘datafeed.xml’;

if (is_writable($filename))
{
if (!$handle = fopen($filename, ‘w’)) {
echo "Cannot open file ($filename)";
exit;
}
// Write $somecontent to our opened file.
if (fwrite($handle, $content) == FALSE) {
$action_msg = "ER";
}

$action_msg = "SC";
fclose($handle);
$handle=fopen($filename,"r");
}
else
{
echo "The file $filename is not writable";
}

}

?>
展开
 我来答
巧莺莺0j2dad
2011-09-20 · 超过12用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:32.7万
展开全部
1.请注意SQL查询的结果数组中的键名的大小写,建议使用小写。
$result[$i]['Description'] --> $result[$i]['description']
$result[$i]['Price'] --> $result[$i]['price']

2.请在选择数据库代码后增加以下代码,避免写入文件(datafeed.xml)出现中文乱码:
mysql_query('SET NAMES utf8'); //其中utf8为你自己设置的编码

3.将 if (is_writable($filename)) 改为 if (is_writable($filename) or !file_exists($filename)) ,否则如果文件datafeed.xml没有被创建时报错(“文件不可写”,且也不会创建该文件)。

4.你的xml文件结构描述有问题,根据自己的需要修正。

参考代码:(已在Win+Apache+MySQL+PHP下验证通过)

<?php
$conn = mysql_connect('localhost', 'root', '123456') or die ('Error connecting to mysql');
mysql_select_db('test', $conn) or die ('Error connecting to database');
mysql_query('SET NAMES utf8');

function getXML($sql="Default Query")
{
$results = mysql_query($sql);
$count = 0;
$data = array();
while ( $row = mysql_fetch_array($results))
{
$result[$count] = $row;
$count++;
}
$columns='';
for($i=0;$i < count($result);$i++)
{
$columns.='<item>';

$columns.='<title>';
$columns.=$result[$i]['name'];
$columns.='</title>';

$columns.='<link>';
$columns.= $result[$i]['link'];
$columns.='</link>';

$columns.='<description>';
$columns.=$result[$i]['description'];
$columns.='</description>';
$columns.='<g:image_link>';
$columns.=$result[$i]['image'];
$columns.='</g:image_link>';

$columns.='<g:price>';
$columns.=$result[$i]['price'];
$columns.='</g:price>';

$columns.='<g:condition>';
$columns.='new';
$columns.='</g:condition>';

$columns.='<g:id>';
$columns.=$result[$i]['id'];
$columns.='</g:id>';

$columns.='</item>';
}
$content='<?xml version="1.0" ?><rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">';
$content.='<channel>';
$content.='<title>Example</title>';
$content.='<link>http://www.example.com</link>';
$content.='<description>Example</description>';
$content.=$columns;
$content.='</channel>';
$content.='</rss>';

$res = update_xml_file($content);
}

getXML("SELECT id,name,description,price,link,image FROM details");

function update_xml_file($content)
{
global $HTTP_POST_VARS;
$filename = 'datafeed.xml';
if (is_writable($filename) or !file_exists($filename))
{
if (!$handle = fopen($filename, 'w')) {
echo "Cannot open file ($filename)";
exit;
}
// Write $somecontent to our opened file.
if (fwrite($handle, $content) == FALSE) {
$action_msg = "ER";
}

$action_msg = "SC";
fclose($handle);
$handle=fopen($filename,"r");
}
else
{
echo "The file $filename is not writable";
}
}
?>
追问
谢谢回答!我本来想的是链接数据库,选择若干字段:id,name,description,price,link,image 并将这些字段按照我的格式写入datafeed.xml 我运行了你修改的代码,还是没有成功...我的要求很简单就是从数据库取出字段然后写入XML,是什么原因导致不成功呢?
追答
你把错误消息告诉我,看具体是什么错误。(这个代码在我的环境下没问题)
ipadho
2011-09-21 · TA获得超过2.4万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:1.3亿
展开全部
你在代码段定义这串数据执行后就执行了xmm指令

去掉 db $0F,$6F,$04,$1E /// movq mm0, [esi+ebx]
db $0F,$7F,$04,$1F /// movq [edi+ebx], mm0

这段代码就不会错误.

无非就是想将8个字节进行存放,这么麻烦干什么

你是在windows下运行的这段代码吧,弹出一个红色messagebox提示错误.

这表示指令执行后产生了异常.xmm技术我不是很清楚,但是这两条指令成功执行了,这表示xmm指令造成了引发了错误.
我也不知道r3级代码能否用xmm指令,所以请你自己debug看是指令执行引发错误还是其他.

如果是xmm指令movq引发的错误,那么就需要学习xmm技术了,我并不是很了解.所以请你自己对照xmm技术手册看看执行xmm指令需要一个什么cpu环境/
追问
能详细些?...我的要求很简单就是从数据库取出字段id,name,description,price,link,image 然后写入XML。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式