在循环PHP中从MySQL单元格创建变量

在循环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

我希望这个标题足够回答这个问题的内容

我拼凑了一个来自不同来源的小脚本,它将MySQL数据库中的每一行写入一个单独的XML文件。它做了它应该做的,但是我被命名约定挂断了

我想从要导出的行的“id”列中命名XML文件,其中$idi是文件扩展名

尝试通过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("&", "&amp;", $cell);
    $cell = str_replace("<", "&lt;", $cell);
    $cell = str_replace(">", "&gt;", $cell);
    $cell = str_replace("\"", "&quot;", $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