MySQL查询返回资源时出现可怕的PHP T_字符串错误

MySQL查询返回资源时出现可怕的PHP T_字符串错误,php,mysql,Php,Mysql,我遇到了可怕的PHP错误 分析错误:语法错误,第14行的/path/to/the/文件中出现意外的T_字符串 下面是代码: function getSomeList($userid) { $query = "SELECT list_id, username_id FROM user_list WHERE username_id = 1"; $result = mysql_query($query, $this->db); if (! $result ) {

我遇到了可怕的PHP错误

分析错误:语法错误,第14行的/path/to/the/文件中出现意外的T_字符串

下面是代码:

function getSomeList($userid) {

    $query = "SELECT list_id, username_id FROM user_list WHERE username_id = 1";

    $result = mysql_query($query, $this->db);
    if (! $result ) {
        $message = "Bad Query: getUserSiteList(): " . mysql_error() . "<br>";
        $message .= "Query: " . $query;
        die($message);
    }
    $num = mysql_num_rows($result);
    echo "Number of Rows Found " . $num . "!!<br>";
    echo get_resource_type($result) . "<br>";
    if ( $num > 0 ) {
        echo "No rows found, nothing to print so am exiting<br>";
    }

    ... more code ...

   }
它以相同的T_字符串错误出错(这是在删除上面显示的if语句之后) 我不知所措,有人对我的错误有什么建议吗?我个人觉得这与mysql查询返回的资源有关。有点不对劲

谢谢你的帮助


PS我在OS X上使用PHP5.3.0和MySQL 5.1

当你在一个不应该出现的地方有一个字符串时,会发生
意外的T_字符串
错误。这可能是因为您忘记连接某些内容,或者忘记在一行后放置分号

AKA:这是代码的兼容性问题,而不是执行问题

您提供的代码似乎没有问题,正如您所说,去掉这一行似乎无法解决问题


也许在别的地方?问题通常与给定行上方的行有关。我的猜测是,while语句上面的那一行没有正确的分号,或者在语法上不正确。

问题不在于代码中的语法。有一些隐藏的字符导致了问题(不是^M,所有东西都是在OSX上开发的,并在同一个系统上运行)。我复制并粘贴了原始函数和其他调用函数中的所有行,以创建一个简单的MySQL连接和查询,但仍然出现错误。这里的关键是我复制和粘贴的。所以原始源文件中的任何奇怪字符都被移动了。 我创建了第二个文件进行测试,并验证它是否像第一个文件一样被破坏。我完全删除了有问题的一行,然后重新键入。一切顺利。我对这两个文件进行了区分,这就是输出。

$ diff testquery.php testquery_same.php 
11,14c11,14
<   
<       if ( $result ) {
<           echo "No rows found, nothing to print so am exiting<br>";
<       }
---
>       
>       if ( $result ) {
>           echo "No rows found, nothing to print so am exiting<br>";
>       }   
16c16
$diff testquery.php testquery\u same.php
11,14c11,14
<   
”;
<       }
---
>       
>如果($结果){
>echo“没有找到行,没有要打印的内容,因此我正在退出
”; > } 16c16

正如你所看到的,有些不同,但我不知道是什么。因此,问题已经解决,我不确定原因,但我需要在这一点上继续前进。

感谢您的回复。

查看
$result
$num
var_dump
,了解上下文-第14行是否引用了您提供的示例代码?要回答Taiko,是,错误中的行是指所提供代码中的正确行。上面的代码示例因错误而失败,是我工作代码的精简版本。我已经经历了寻找连接线和非终止线的正常问题,但看不到问题所在。我希望StackTrace能够在提供的代码中发现错误。我提到while语句,只是为了简单地指出问题似乎与mysql_查询函数返回的资源有关。但是问题应该在提供的代码中,除非它在函数之外。这些类型的错误会从外部代码块遗留下来吗?我不相信它会遗留下来,因为如果你试图声明一个上面有错误代码的函数,你会得到一个
意外的t_函数
错误。我在编写PHP代码时遇到了这个问题已经很长时间了。在Windows和OS X上,我已经尽了最大努力来解决这个问题,但最近我不得不重新编写我所做的几乎所有if语句。这太烦人了,我不知道该怎么办。现在几乎要放弃PHP了。使用崇高的文本。
$ diff testquery.php testquery_same.php 
11,14c11,14
<   
<       if ( $result ) {
<           echo "No rows found, nothing to print so am exiting<br>";
<       }
---
>       
>       if ( $result ) {
>           echo "No rows found, nothing to print so am exiting<br>";
>       }   
16c16