使用PHP连接MySQL数据库时出现意外的令牌错误

时间:2014-03-31 13:28:55

标签: php mysql token

我正在尝试使用PHP连接到MYSQL数据库。无论我尝试什么,我都会遇到两个错误:

SyntaxError {stack:(...),message:“Unexpected token A”}

SyntaxError {stack:(...),message:“Unexpected token N”}

以下是我目前的代码:

<?php
    $host = "localhost";
    $port = 8889;
    $username = "********"; 
    $password = "********";   
    $database="***datebasename***";

    $server = mysql_connect($host, $user, $password);
    if (!$server) {
        echo mysql_error();
        die;
    }
    $connection = mysql_select_db($database, $server);

    if (isset($_GET['type'])) {
        $type = $_GET['type'];
    } else {
        $type = "null";
        echo "Type not passed";
    }

    if($type=='load'){
        $string = '';
        $gene = $_GET["gene"];
        $data = $_GET["data"];

        $myquery = "select gene_data.gene_data from genes inner join gene_data on genes.id=gene_data.g_id where genes.name ='$gene' and genes.type='$data'";
        $query = mysql_query($myquery);

        if ( !$myquery ) {
            echo mysql_error();
            die;
        }

        if ( !$query ) {
            echo mysql_error();
            die;
        }


        $data = array();
        for ($x = 0; $x < mysql_num_rows($query); $x++) {
            $data[] = mysql_fetch_assoc($query);
        }

        echo json_encode($data);
        mysql_close($server);
    }
?>

当然,我的用户名,密码和数据库名称都有真实的字符串。

2 个答案:

答案 0 :(得分:1)

您的代码中有echo个语句(特别是echo mysql_error()出现几次)。如果输出任何这些错误,您的结果如下所示:

An error occurred[{"id":"1","name":"test"}]

换句话说,您的错误消息后跟实际的JSON。

当您的浏览器尝试解析时,第一个字符是意外的,因此导致它在上面的示例中抛出Unexpected token A

检查开发人员工具的“网络”标签,确切了解您的浏览器发回的内容,您几乎肯定会出现某种错误。

答案 1 :(得分:0)

您定义了$ username但在mysql_connect函数中使用$ user。

正确使用fetch assoc,例如:

<code>

    while ($row = mysql_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

</code> 

我认为您应该忘记这些功能,也许您可​​以使用PDO