Adobe Flex kullanarak JSON Ayrıştırma Hatası - PHP - SQL

2 Cevap php

Daha sonra Flex tarafından okunan JSON, dönüştürmek için PHP kullanarak, benim SQL veritabanı sonuçları döndürmek için çalışıyorum.

Burada aldığınız ayrıştırma hatası -

JSONParseError: Unexpected < encountered
at com.adobe.serialization.json::JSONTokenizer/parseError()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONTokenizer.as:579]
at com.adobe.serialization.json::JSONTokenizer/getNextToken()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONTokenizer.as:168]
at com.adobe.serialization.json::JSONDecoder/nextToken()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONDecoder.as:83]
at com.adobe.serialization.json::JSONDecoder()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONDecoder.as:60]
at com.adobe.serialization.json::JSON$/decode()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSON.as:78]
at main/getPHPData()[C:\wamp\www\ClassDB\src\main.mxml:25]
at main/__getData_result()[C:\wamp\www\ClassDB\src\main.mxml:58]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.rpc.http.mxml::HTTPService/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\http\mxml\HTTPService.as:290]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:193]
at mx.rpc::Responder/result()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:43]
at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74]
at DirectHTTPMessageResponder/completeHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:403]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

Ve burada ben kullanıyorum PHP -

if(isset($_GET['getclassdb']))
{
  mysql_connect($URL, $USERNAME, $PASSWORD);
  mysql_select_db($DATABASE) or die('Cannot connect to database.');
$returnArray = array();
$query = 'SELECT * FROM classdb';
$result = mysql_query($query);

while($row = mysql_fetch_assoc($result))
{
array_push($returnArray, $row);
}

mysql_close();
echo json_encode($returnArray);
}
elseif(isset($_GET['setclassdb']))
{
$jsonString = urldecode($_GET['jsonSendData']);
$jsonString = str_replace("\\", "", $jsonString);
$data = json_decode($jsonString, true);

mysql_connect($URL, $USERNAME, $PASSWORD);
mysql_select_db($DATABASE) or die('Cannot connect to database.');

foreach ($data as $classdbEntry) {
$query = sprintf(
'UPDATE Tutorials SET rating = "%s" WHERE id = "%s"',
mysql_real_escape_string($classdbEntry['rating']),
mysql_real_escape_string($classdbEntry['id']));

$result = mysql_query($query);

if(!$result)
{
mysql_close();
echo mysql_error();
return;
}
}
mysql_close();
echo "database updated";
}
?>

Ben buradan gitmek için nerede tam bir kaybı duyuyorum. Doğru yönde herhangi bir yardım veya ipuçları büyük mutluluk duyacağız!

2 Cevap

Eğer Firefox kullanıyorsanız, o zaman JSONView add-on json hataları bulma konusunda yardımcı olmalı ... bir tarayıcıda php açmayı deneyin ve çıkış uygun json sözdizimi olup olmadığını görmek mü ..

Ben sorun actionscript sınıf bekliyor budur geçerli json, (dışarı baskı) "iade" değil olduğuna inanıyorum. Bildiğim kadarıyla geçerli JSON ikisi de PHP komut hiçbir şey verir, ya dize "veritabanı güncellendi" söyleyebilirim.

Actionscript tarafı alacakları konusunda belirli beklentileri varsa ben bilmiyorum. Bu, sadece dize dışarı baskı değilse "{}" yeterli olabilir; bu boş bir JSON nesnesi olacaktır.