我正在尝试使用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);
}
?>
当然,我的用户名,密码和数据库名称都有真实的字符串。
答案 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。