在循环PHP中从MySQL单元格创建变量
我希望这个标题足够回答这个问题的内容 我拼凑了一个来自不同来源的小脚本,它将MySQL数据库中的每一行写入一个单独的XML文件。它做了它应该做的,但是我被命名约定挂断了 我想从要导出的行的“id”列中命名XML文件,其中$idi是文件扩展名 尝试通过xpath访问此文件,但没有结果 如何访问特定列的数据单元并将其分配给变量在循环PHP中从MySQL单元格创建变量,php,mysql,xml,loops,while-loop,Php,Mysql,Xml,Loops,While Loop,我希望这个标题足够回答这个问题的内容 我拼凑了一个来自不同来源的小脚本,它将MySQL数据库中的每一行写入一个单独的XML文件。它做了它应该做的,但是我被命名约定挂断了 我想从要导出的行的“id”列中命名XML文件,其中$idi是文件扩展名 尝试通过xpath访问此文件,但没有结果 如何访问特定列的数据单元并将其分配给变量 <?php $host = ""; $user = ""; $pass = ""; $database = ""; // R
<?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);
}
?>
我在google上花了几个小时,并用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