在php中保存xml数据

在php中保存xml数据,php,xml,Php,Xml,我正在尝试使用PHP中的数据库查询创建并保存一个xml文件。 代码 bind(':call\u number',$call\u number); $db->query($sql); $row=$db->single(); $xml=newXMLWriter(); $xml->openMemory(); $file='parkerfd\uux'$打你的电话号码。xml'; $xml\u File=$INC\u DIR。“nfirs_files/”$file; $xml->setIndent(tru

我正在尝试使用PHP中的数据库查询创建并保存一个xml文件。 代码

bind(':call\u number',$call\u number);
$db->query($sql);
$row=$db->single();
$xml=newXMLWriter();
$xml->openMemory();
$file='parkerfd\uux'$打你的电话号码。xml';
$xml\u File=$INC\u DIR。“nfirs_files/”$file;
$xml->setIndent(true);
$xml->startDocument();
$xml->startElement(“事件”);
//电话号码
$xml->startElement(“事件编号”);
$xml->writeRaw($row['incident_number']);
$xml->endElement();
//年
$xml->startElement(“事件年”);
$xml->writeRaw($row['incident_year']);
$xml->endElement();
//地址号码
$xml->startElement('address_number');
$xml->writeRaw($row['address\u number']);
$xml->endElement();
//前缀方向
$xml->startElement('prefix_directive');
$xml->writeRaw($row['prefix_directive']);
$xml->endElement();
//街道名称
$xml->startElement('street_name');
$xml->writeRaw($row['street\u name']);
$xml->endElement();
//街道类型
$xml->startElement('street_type');
$xml->writeRaw($row['street\u type']);
$xml->endElement();
//十字街1号
$xml->startElement('cross_street_1');
$xml->writeRaw($row['cross_street_1']);
$xml->endElement();
//十字街2号
$xml->startElement(“cross_street_2”);
$xml->writeRaw($row['cross_street_2']);
$xml->endElement();
//城市
$xml->startElement('city');
$xml->writeRaw($row['city']);
$xml->endElement();
//陈述
$xml->startElement('state');
$xml->writeRaw($row['state']);
$xml->endElement();
//事件类型
$xml->startElement(“事件类型”);
$xml->writeRaw($row['incident_type']);
$xml->endElement();
$xml->endElement()//事件元素
标题('Content-type:text/xml');
文件内容($xml\u文件,$xml->outputMemory());
$xml->flush();
发送ftp($xml\u文件,$File);
}

代码的目的是将名为“parkerfd_uuxxxxxxxx.xml”的xml文件保存到根目录/nfirs_文件中。为什么不保存xml文件?R

这不起作用的原因有很多

第一个原因是,您正在访问函数中未定义的
$INC_DIR
。您将希望通过添加以下代码来允许使用它

第二个原因是路径
$INC\u DIR。“nfirs\u files/”
甚至可能不存在,因此无法创建该文件。您需要确保该文件夹存在,如果不存在,请创建它

第三,这不仅仅是为了让你的生活更轻松。与其定义每个键,不如这样做


此文件夹是否为eixst<代码>$\u服务器[“文档\u根”]。“/dispatch dev/nfirs_files/”@Augwa是的,文件夹存在感谢您的回答。我做了建议的更改,没有创建xml文件。我的代码中肯定还有其他问题。
<?php
$INC_DIR = $_SERVER["DOCUMENT_ROOT"]. "/dispatch-dev/";
include_once($INC_DIR. 'config/database.class.php');
require_once ($INC_DIR.'functions/ftp.php');

function export_xml($call_number)
{
 $db = new Database();


$sql = "SELECT * FROM nfirs_export WHERE incident_number = :call_number";
$db->bind(':call_number', $call_number);
$db->query($sql);
$row=$db->single();
$xml = new XMLWriter();
$xml->openMemory();
$file = 'parkerfd_' . $call_number . '.xml';
$xml_File = $INC_DIR. "nfirs_files/" .$file;

$xml->setIndent(true);
$xml->startDocument();

    $xml->startElement('incident');

    //call number
    $xml->startElement('incident_number');
    $xml->writeRaw($row['incident_number']);
    $xml->endElement();

    //year
    $xml->startElement('incident_year');
    $xml->writeRaw($row['incident_year']);
    $xml->endElement();


    //address number
    $xml->startElement('address_number');
    $xml->writeRaw($row['address_number']);
    $xml->endElement();

    //prefix directions
    $xml->startElement('prefix_directional');
    $xml->writeRaw($row['prefix_directional']);
    $xml->endElement();

    //street name
    $xml->startElement('street_name');
    $xml->writeRaw($row['street_name']);
    $xml->endElement();

    //street type
    $xml->startElement('street_type');
    $xml->writeRaw($row['street_type']);
    $xml->endElement();

    //cross street 1
    $xml->startElement('cross_street_1');
    $xml->writeRaw($row['cross_street_1']);
    $xml->endElement();

    //cross street 2
    $xml->startElement('cross_street_2');
    $xml->writeRaw($row['cross_street_2']);
    $xml->endElement();

    //city
    $xml->startElement('city');
    $xml->writeRaw($row['city']);
    $xml->endElement();

    //state
    $xml->startElement('state');
    $xml->writeRaw($row['state']);
    $xml->endElement();

    //incident type
    $xml->startElement('incident_type');
    $xml->writeRaw($row['incident_type']);
    $xml->endElement();

    $xml->endElement(); //incident element

    header('Content-type: text/xml');

    file_put_contents($xml_File, $xml->outputMemory());

    $xml->flush();

    send_ftp($xml_File, $file);
}
function export_xml($call_number)
{
    global $INC_DIR;

    // rest of your code
}
if (false === is_dir($INC_DIR. "nfirs_files/")) {
    if (false === mkdir($INC_DIR. "nfirs_files/", 0755)) {
        die('failed to create folder'); // you'll need to debug this
    }
}
$xml->startElement('incident');

foreach($row as $key => $value) {
    $xml->startElement($key);
    $xml->writeRaw($value);
    $xml->endElement();
}

$xml->endElement();