从MySQL细胞内环路PHP
问题描述:
创建变量,我希望冠军是足够的问题的内容...从MySQL细胞内环路PHP
我拼凑来自不同源的小脚本,在MySQL数据库中写入每一行一个单独的XML文件。它做它应该做的事,但是我挂在命名约定上。
我想从正在导出的行的'id'列中命名XML文件,其中$id
是文件sans扩展名。
试图通过xpath访问这个无济于事。
如何访问特定列的数据(单元格)并将其分配给变量?
<?php
$host = "";
$user = "";
$pass = "";
$database = "";
// Replace by a query that matches your database
$SQL_query = "SELECT * FROM data";
$DB_link = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_select_db($database, $DB_link) or die ("Could not find or access the database.");
$result = mysql_query ($SQL_query, $DB_link) or die ("Data not found. Your SQL query didn't work... ");
//ROWS
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id;
$XML = "<?xml version=\"1.0\"?>\n";
$XML .= "<order>\n";
$XML .= "\t<item>\n";
$i = 0;
// cells
foreach ($row as $cell) {
// Escaping illegal characters - not tested actually ;)
$cell = str_replace("&", "&", $cell);
$cell = str_replace("<", "<", $cell);
$cell = str_replace(">", ">", $cell);
$cell = str_replace("\"", """, $cell);
$col_name = mysql_field_name($result,$i);
// creates the "<tag>contents</tag>" representing the column
$XML .= "\t\t<" . $col_name . ">" . $cell . "</" . $col_name . ">\n";
$i++;
}
$XML .= "\t</item>\n";
$XML .= "</order>\n";
$handle = fopen($id.'.xml','w+');
fwrite($handle,$XML);
fclose($handle);
}
?>
答
我好不容易花时间在谷歌和改写了这一点使用的XMLWriter:
<?php
$host = "";
$user = "";
$pass = "";
$database = "";
mysql_connect($host, $user, $pass) or die ("Could not connect to host.");
mysql_select_db($database) or die("Could not find or access the database");
$sql = "SELECT * FROM data";
$res = mysql_query($sql) or die ("Data not found. Your SQL query didn't work...");
//start document
while ($row = mysql_fetch_assoc($res)) {
//use this variable for filename later
$name = $row['id'];
$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument('1.0', 'UTF-8');
$xml->setIndent(true);
$xml->startElement('order');
$xml->startElement('item');
foreach($row as $key => $value) {
$xml->writeElement($key,$value);
}
//$xml->writeElement('id',$row['id']);
$xml->endElement();
$xml->endElement();
//close document
$xml->endDocument();
file_put_contents($name .'.xml', $xml->outputMemory());
}
?>
你真的应该使用PHP内置XML功能,而不是手动构建XML。 – 2014-12-06 00:52:40
谢谢 - 我已经使用XMLWriter重建了所有东西,并使其工作 – 2014-12-08 17:29:04