Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DB2遍历行以创建XML文件_Php_Xml_Db2 - Fatal编程技术网

Php DB2遍历行以创建XML文件

Php DB2遍历行以创建XML文件,php,xml,db2,Php,Xml,Db2,我遵循本教程,将DB2数据库中的某些地址的标记添加到google地图中: 我正试图从我的DB2数据库创建一个XML文档,但我有点困惑。这是google编写的代码,用于迭代行并从中创建XML文档: // Iterate through the rows, adding XML nodes for each while ($row = @mysql_fetch_assoc($result)){ // ADD TO XML DOCUMENT NODE $node = $dom->cre

我遵循本教程,将DB2数据库中的某些地址的标记添加到google地图中: 我正试图从我的DB2数据库创建一个XML文档,但我有点困惑。这是google编写的代码,用于迭代行并从中创建XML文档:

// Iterate through the rows, adding XML nodes for each

while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  $node = $dom->createElement("marker");
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("name",$row['name']);
  $newnode->setAttribute("address", $row['address']);
  $newnode->setAttribute("lat", $row['lat']);
  $newnode->setAttribute("lng", $row['lng']);
  $newnode->setAttribute("type", $row['type']);
}

在DB2中使用PHP执行此操作的等效方法是什么?

您需要使用相应的PHP DB2 API,这可能涉及在PHP ini文件中启用扩展,并可能安装DB2 ODBC驱动程序:

下面是在连接上使用带有try/catch的PDO驱动程序方法的工作示例。或者,您也可以使用DSN(参见上述手册):


您将需要使用相应的PHP DB2 API,这可能涉及在PHP ini文件中启用扩展,并可能安装DB2 ODBC驱动程序:

下面是在连接上使用带有try/catch的PDO驱动程序方法的工作示例。或者,您也可以使用DSN(参见上述手册):


我想应该是完全一样的,只是您要用
db2\u fetch\u assoc()
替换
mysql\u fetch\u assoc()
,不是吗?我试过了,结果发现“name”不是有效的索引。所有其他属性都相同。您可能需要使用有效的列名。提示:在DB2中(以及在SQL标准中),默认情况下对象名被转换为大写。我想它会完全相同,只是您将
mysql\u-fetch\u-assoc()
替换为
DB2\u-fetch\u-assoc()
,否?我试过了,得到的错误是“name”不是有效的索引。所有其他属性都相同。您可能需要使用有效的列名。提示:在DB2(以及SQL标准)中,对象名默认转换为大写。我的意思是我可以成功地连接我的数据库。我使用db2_connect方法来连接、db2_准备和db2_执行。那么问题是什么?从执行的查询中简单获取,替换mysql\u fetch\u assoc。使用。请参阅编辑。这正是我以前所做的。紧跟其后,但替换为$row=mysql。。。。使用db2_fetch_assoc时,我不断收到错误消息,即“name”不是有效的索引地址“不是有效的索引。”“lat”不是所有列名称的有效索引等等。嗯,我不知道我做了什么不同,但现在它似乎起作用了。非常感谢!!你为什么不在帖子中提到这些错误?我看到你在评论中这样做了。可能是您的连接、准备/执行对象?如果有帮助,请选择我的答案。我的意思是我可以成功地连接我的数据库。我使用db2_connect方法来连接、db2_准备和db2_执行。那么问题是什么?从执行的查询中简单获取,替换mysql\u fetch\u assoc。使用。请参阅编辑。这正是我以前所做的。紧跟其后,但替换为$row=mysql。。。。使用db2_fetch_assoc时,我不断收到错误消息,即“name”不是有效的索引地址“不是有效的索引。”“lat”不是所有列名称的有效索引等等。嗯,我不知道我做了什么不同,但现在它似乎起作用了。非常感谢!!你为什么不在帖子中提到这些错误?我看到你在评论中这样做了。可能是您的连接、准备/执行对象?如果有帮助,请选择我的答案。
# Opening db connection
try {
    $conn = db2_connect($database, $user, $password);   

    $sql = "SELECT * FROM tablename";
    $stmt = db2_prepare($conn, $sql);
    $result = db2_execute($stmt);
}

catch(PDOException $e) {  
    echo $e->getMessage();
    exit;
}

while($row = db2_fetch_assoc($stmt)) {  
  // ADD TO XML DOCUMENT NODE
  $node = $dom->createElement("marker");
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("name",$row['name']);
  $newnode->setAttribute("address", $row['address']);
  $newnode->setAttribute("lat", $row['lat']);
  $newnode->setAttribute("lng", $row['lng']);
  $newnode->setAttribute("type", $row['type']);
}

# Closing db connection
db2_close($conn);