2012-06-23 31 views
1

如何获取下面的代码以输出我定义的节点名称?截至目前,它基于SQL表的列名创建节点。我想要定义列和节点。另外,我该如何编码它,以便有人在我的表格中插入数据时将该数据附加到插入的数据中?例如:XML与mySQL和DOM

Input data: "davidjmorin" 
Data inserted: "http://someurl.com/davidjmorin" 

这里是我原来的问题代码:

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

$link = mysql_connect('localhost','root','IhaveAlLthEanSwers2012!'); 
mysql_select_db('bb_links'); 

$sql = "Select * from `links`"; 
$run = mysql_query($sql, $link); 

if($run && mysql_num_rows($run)) { 
$doc = new DOMDocument('1.0'); 
$doc->formatOutput = true; 
$doc->preserveWhiteSpace = true; 

$root = $doc->createElement('data'); 
$doc->appendChild($root); 

while(($fetch = mysql_fetch_assoc($run))!== false) { 
    $node = $doc->createElement('channel'); 
    $root->appendChild($node); 

    foreach($fetch as $key => $value) { 
     createNodes($key, $value, $doc, $node); 
    } 
} 
$doc->save("thelinks.xml"); 
} 
//$node = "channel"; 
function createNodes($key, $value, $doc, $node) { 
$key = $doc->createElement($key); 
$node->appendChild($key); 
$key->appendChild($doc->createTextNode($value)); 
} 
?> 

回答

0

我不完全知道你是问你的第一个问题是什么,但对于你的第二个问题(这确实应该在这里分成第二个问题),我想你问的只是基本的string concatenation。例如,

<?php 
    $url_name = "http://www.example.com/"; 
    $data = $_POST['name']; //davidjmorin 
    $data_to_insert = $url_name . $data; 
    //Insert data into database 
?> 

另外,请不要使用mysql_*功能的新代码。他们不再维护,社区已开始deprecation process(请参阅red box)。相反,您应该了解prepared statements并使用PDOMySQLi。如果你不能决定哪个,this article会帮助你。如果你在意学习,this is a good PDO tutorial

我是认真的。不要使用这些功能。 完全可以。

+0

非常感谢@pythonscript ...我只是学习所有这些东西,所以谢谢你的信息...我thnk我会去与MySQLi ... –

+0

乐于帮助。显然,我提供的代码不是生产就绪的,因为您应该使用预处理语句清理数据库输入(我假设您还需要验证数据),但是我给出的链接是开始的好地方。 –

+0

如果答案,特别是关于准备好的陈述的部分有帮助,请提出答案,让更多人看到警告。 –