我一直在研究我的应用程序,该应用程序旨在将来自 PHP 文件的 sql 查询中的数据返回到客户端 C# 应用程序。
查询在 PHP 端执行并加载到引用的 XML 查询中,并在该查询中发送到客户端。然后客户端读取 XML 并提取所需的数据。
但是,我有点困惑。出于某种原因 - 并非所有信息都被返回。
PHP:
$query = "SELECT * FROM Parks";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
$array = array (
$row['Name'] => 'Name',
$row['File'] => 'File',
$row['Image'] => 'Image',
$row['Description'] => 'Description',
$row['Author'] => 'Author',
$row['CS'] => 'CS',
$row['Size'] => 'Size',
$row['Theme'] => 'Theme',
$row['Mountains'] => 'Mountains',
$row['Hills'] => 'Hills',
$row['Rivers'] => 'Rivers',
$row['Lake'] => 'Lake',
$row['Ocean'] => 'Ocean',
$row['Island'] => 'Island',
$row['SetOfIslands'] => 'Setofislands',
$row['Waterfalls'] => 'Waterfalls',
$row['Download'] => 'Download',
$row['ID'] => 'ID',
$row['Rating'] => 'Rating',
$row['FileSize'] => 'FileSize',
$row['DateUploaded'] => 'Dateuploaded',
);
$xml = new SimpleXMLElement('<Parks/>');
array_walk_recursive($array, array ($xml, 'addChild'));
echo $xml->asXML();
但是,在客户端,XML 缺少某些值。
例如,Run 1 返回值:Name,FileImage,Description,Author,CS,Size,Theme,Lake,Waterfalls,Dateuploaded,Download,ID,Rating,FileSize
当运行 2 返回时:名称、文件、图像、描述、作者、CSSize、主题、瀑布、河流、上传日期、下载、ID、评级、文件大小
如您所见,第一次运行不返回参数“Rivers”,但第二次运行。每次运行似乎都返回不同的值。
检查我的数据库后,它丢失的所有值都存储为“真”或“假”变量。我不确定这是否与它有任何关系 - 但是根据我的数据库中的数据检查返回的结果,我发现没有良心。
简而言之,为什么数组不存储我要求它存储的所有数据,为什么它选择存储的过程似乎如此随机?
PS:我之前已经回显了每一行,并且可以确认数据库行已正确命名并且其中存在数据....
编辑:返回的 xml 示例:
<?xml version="1.0"?>
<Parks><Name>Some Name</Name>
<File>The File Path</File>
<Image>Link To Screenshot</Image>
<Description>Random description </Description>
<Author>Someone</Author>
<CS>False </CS><
Size>small</Size>
<Theme>space</Theme>
<Island>False</Island>
<Lake>True</Lake>
<Ocean>False</Ocean>
<Waterfalls>True</Waterfalls>
<Rating>0</Rating>
<ID>166</ID>
<FileSize>3706121</FileSize>
<Dateuploaded>2013-04-04</Dateuploaded>
</Parks>