2011-12-18 75 views
0

我想知道为什么我的更新不会填充本地Sqlite数据库。昨天在数据库应用程序中使用很少的记录正常工作。今天插入另外10条记录之后。两种发送方法似乎都能正常工作,但它们不返回数据。它仅更新IngredientDB,但不更新配方ID请求。这是我更新的动作脚本代码,Http send()请求不返回任何值

dishName.addEventListener("Success", dishName_resultHandler); 
dishName.addEventListener("...", faultHandler); 
dishName.send(); 
dishIngs.addEventListener("Success", ingredients_resultHandler); 
dishIngs.addEventListener("...", faultHandler); 
dishIngs.send(); 
protected function dishName_resultHandler(event:ResultEvent):void 
{ 
externalRecipes=event.result.recipes.recipe; 
} 

protected function ingredients_resultHandler(event:ResultEvent):void{ 
externalIngredients=event.result.ingredients.ingredient; 
} 

这是我的PHP脚本我的第一台

$mysql_host = "..."; 
$mysql_database = "..."; 
$mysql_user = "..."; 
$mysql_password = "...."; 

$conn = mysql_connect("...", "...","...") or  die(mysql_error()); 
mysql_select_db("....", $conn); 

$sql = 'SELECT * FROM `RecipeDB`'; 
$res = mysql_query($sql); 

$xml = new XMLWriter(); 

$xml->openURI("php://output"); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->startElement('recipes'); 

while ($row = mysql_fetch_assoc($res)) { 
$xml->startElement("recipe"); 

    $xml->writeElement('RecipeID', $row['RecipeID']); 
    $xml->writeElement('Name', $row['Name']); 
    $xml->writeElement('Category', $row['Category']); 
    $xml->writeElement('Origin', $row['Origin']); 
    $xml->writeElement('Recipe', $row['Recipe']); 
    $xml->writeElement('Favorite', $row['Favorite']); 
    $xml->writeElement('Image', base64_encode($row['Image'])); 



$xml->endElement(); 
} 

$xml->endElement(); 

$xml->flush(); 

和类似的第二

$conn = mysql_connect("...", "..","...") or die(mysql_error()); 
mysql_select_db("....", $conn); 

$sql = 'SELECT * FROM `IngredientDB`'; 
$res = mysql_query($sql); 

$xml = new XMLWriter(); 

$xml->openURI("php://output"); 
$xml->startDocument(); 
$xml->setIndent(true); 

$xml->writeRaw('<?xml version="1.0"?>'); 
$xml->startElement('ingredients'); 

while ($row = mysql_fetch_assoc($res)) { 
$xml->startElement("ingredient"); 

    $xml->writeElement('rowid', $row['rowid']); 
    $xml->writeElement('RecipeID', $row['RecipeID']); 
    $xml->writeElement('Ingredient', $row['Ingredient']); 
    $xml->writeElement('Quantity', $row['Quantity']); 



$xml->endElement(); 
} 

这是我的服务器

电话
<s:HTTPService id="dishName" 
url="http://.../dish.php" 
result="dishName_resultHandler(event)" 
fault="faultHandler(event)"/> 

<s:HTTPService id="dishIngs" 
url="http://.../Ingedient.php" 
result="ingredients_resultHandler(event)" 
fault="faultHandler(event)"/> 

这是struct我的数据库

CREATE TABLE `RecipeDB` (
`RecipeID` int(5) NOT NULL AUTO_INCREMENT, 
`Name` varchar(20) COLLATE latin1_general_ci NOT NULL, 
`Category` varchar(20) COLLATE latin1_general_ci NOT NULL, 
`Origin` varchar(20) COLLATE latin1_general_ci NOT NULL, 
`Recipe` varchar(2000) COLLATE latin1_general_ci NOT NULL, 
`Favorite` tinyint(1) NOT NULL, 
`Image` blob NOT NULL, 
PRIMARY KEY (`RecipeID`) 
) 

CREATE TABLE `IngredientDB` (
`rowid` int(5) NOT NULL AUTO_INCREMENT, 
`RecipeID` int(5) NOT NULL, 
`Ingredient` varchar(20) COLLATE latin1_general_ci NOT NULL, 
`Quantity` varchar(100) COLLATE latin1_general_ci NOT NULL, 
PRIMARY KEY (`rowid`) 
) 
+0

那么它是SQLite或MySQL? “不返回任何值”是什么意思? – 2011-12-18 12:52:39

+0

您的虚拟主机似乎将谷歌分析代码添加到php输出。你使用Flash内容调试器插件吗?它抱怨格式不正确的XML吗? – weltraumpirat 2011-12-18 12:56:39

+0

btw。您应该_really_从您的代码示例中删除数据库详细信息... – weltraumpirat 2011-12-18 12:58:08

回答

0

你如何配置你的网络服务器?也许这是你的脚本的PHP错误,你没有得到答案,因为服务器(或mayeb php)配置为不显示错误。

你检查了你的错误日志吗?您也可以尝试直接执行php文件,而不是通过Flash来执行,只是为了确保URL是正确的,而且答案是正确的。

希望这会有所帮助!

+0

文档xml格式正确,问题似乎与复制值从xml文件到ArrayCollection。问题在于将XML解析器发送到diviace或将值复制到ArrayColletion – 2011-12-18 17:49:42