循环注册ID以PHP发送到GCM

时间:2012-11-27 15:07:07

标签: php android mysql google-cloud-messaging

我遇到的问题是在 PHP 中循环使用MYSQL数据库中的注册ID。 这是我实现它的方式,但我确信它出了问题。

$apiKey = array();
    $i = 0;
    if($_POST['course1'] == '1')
    {
        while($row = mysql_fetch_array(mysql_query("SELECT Registration_id FROM students WHERE course1 ='1' ")))
        {

            $apiKey[$i] = $row['Registration_id'];
            $i++;

        }

    }

但是它在Android LogCat中给出了一个错误:

11-27 16:56:25.336: E/JSON(972): Array<br />n<b>Fatal error</b>:  Maximum execution
 time of 30 seconds exceeded in
 <b>/home/Php/send.php</b> on line
 <b>34</b><br />n
11-27 16:56:25.346: E/JSON Parser(972): Error parsing data org.json.JSONException:
Value Array<br of type java.lang.String cannot be converted to JSONObject

1 个答案:

答案 0 :(得分:0)

您的PHP脚本需要花费太多时间才能完成。这意味着你的循环可能会永远运行。

您在每次循环迭代时查询数据库,结果是$ row将始终是您查询的第一行。

另外,您不应再使用mysql_函数(不推荐使用它们,请参阅PHP文档)。

尝试类似:

$query_result = mysql_query("SELECT Registration_id FROM students WHERE course1 ='1' ");
while ($row = mysql_fetch_array( $query_result ) ) {
  // ...
}