Я работаю над онлайн-игрой в Flash AS3 и использую PHP-сервер с базой данных mySQL. Я манипулирую данные в базе данных mySQL с помощью PHP, и когда я запрашиваю PHP-файл в браузере прямо с 'localhost/php/file.php'
, база данных изменяется отлично. У меня есть следующий код AS3:Загрузка PHP-URL во Flash AS3
public function getSite(string):Boolean{
var phpVars:URLVariables = new URLVariables();
var t:Boolean = false;
/*
we use the URLRequest method to get the address of our php file and attach the php vars.
*/
var urlRequest:URLRequest = new URLRequest(string);
/*
the POST method is used here so we can use php's $_POST function in order to recieve our php variables.
*/
urlRequest.method = URLRequestMethod.POST;
/*
this attaches our php variables to the url request
*/
urlRequest.data = phpVars;
/*
we use the URLLoader class to send the request URLVariables to the php file
*/
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlLoader.addEventListener(Event.COMPLETE, check(t));
t = check(t);
/*
runs the function once the php file has spoken to flash
*/
/*
we send the request to the php file
*/
urlLoader.load(urlRequest)
return t;
}
function check(t:Boolean):Function{
return function (event:Event):Boolean{
trace(event.target.data.checkResult);
if(event.target.data.checkResult == "Good"){
t = true;
} else {
t = false;
}
return t;
}
}
Теперь отсюда, мой «trace
» показывает, что загружен URL и выход "Good"
, однако значения в базе данных не изменяется. Это PHP-файл:
<?php
/*
connect to our database
*/
include_once "connect.php";
$sql = "UPDATE accounts SET PlayersOnline = accounts.PlayersOnline + 1";
$query = mysql_query($sql) or exit("checkResult=Bad");
exit("checkResult=Good");
?>
Когда я иду в 'localhost/php/gameSearch.php'
в веб-браузере изменений в базе данных, и мне интересно, в чем проблема.
** ПРЕДУПРЕЖДЕНИЕ **: Если вы просто изучаете PHP, пожалуйста, не используйте интерфейс ['mysql_query'] (http://php.net/manual/en/function.mysql-query.php) , Это так ужасно и опасно, что он был удален в PHP 7. Замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /) и руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), объясняет лучшие практики. – tadman
Также использование 'exit()' для печати - это очень грязный способ сделать это. Обычно вы должны использовать 'echo', и пусть программа завершается нормально. – tadman