高手请帮忙看看这段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";
}
}
?> 展开
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";
}
}
?> 展开
2个回答
展开全部
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";
}
}
?>
$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,是什么原因导致不成功呢?
追答
你把错误消息告诉我,看具体是什么错误。(这个代码在我的环境下没问题)
展开全部
你在代码段定义这串数据执行后就执行了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环境/
去掉 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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询