Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
phpmyadmin中出错,但在php脚本中运行良好_Php_Sql_Mysql_Phpmyadmin_Mysql Error 1064 - Fatal编程技术网

phpmyadmin中出错,但在php脚本中运行良好

phpmyadmin中出错,但在php脚本中运行良好,php,sql,mysql,phpmyadmin,mysql-error-1064,Php,Sql,Mysql,Phpmyadmin,Mysql Error 1064,好吧,这是一个奇怪的问题,我想我的sql查询中一定有问题,但我没有发现任何问题。发生的事情是,我有一个在php脚本中运行的脚本,该脚本检索用户已注册的所有类别以及有多少其他人已注册相同类别。当我在php页面中运行查询时,它非常慢,但会返回结果。我想看看发生了什么,所以我转到phpmyadmin运行同一个脚本,它返回结果的计数非常快,但随后在通常显示结果的地方出现以下错误: #1064 - You have an error in your SQL syntax; check the manual

好吧,这是一个奇怪的问题,我想我的sql查询中一定有问题,但我没有发现任何问题。发生的事情是,我有一个在php脚本中运行的脚本,该脚本检索用户已注册的所有类别以及有多少其他人已注册相同类别。当我在php页面中运行查询时,它非常慢,但会返回结果。我想看看发生了什么,所以我转到phpmyadmin运行同一个脚本,它返回结果的计数非常快,但随后在通常显示结果的地方出现以下错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds
       to your MySQL server version for the right syntax to use near '' at line 1 
以下是查询:

SELECT t1.category_id, t3.description AS 'Category',
    t1.list_type_id, t2.name, t1.status_id, t2.user_id,
    t2.email, UNIX_TIMESTAMP( t1.record_date ) AS 'RecordDate',
    (
        SELECT COUNT( category_id ) 
        FROM t1_sub
        WHERE t1_sub = t1.job_ctg_id AND
            t1_sub.list_type_id = t1.list_type_id AND
            t1_sub.status_id =44
    ) AS 'MatchingListings'
FROM t1
INNER JOIN t2 ON t2.id_rfp_vendor_data = t1.user_id
INNER JOIN t3 ON t3.type_lookup_id = t1.job_ctg_id
WHERE t1.status_id =43
我不知所措。我的问题有两个原因:

  • 我的问题中是否有我遗漏的地方
  • 如果不是,错误mysql是否显示了我的脚本运行缓慢的原因,以及php有办法解决这个问题?(尽管这似乎是不太可能的,但我还是要问清楚)

  • 谢谢

    您的表名或列名中是否有空格?如果是这样,请将它们括在反勾中:

    `table name`
    

    PHPMyAdmin可以自由地稍微重写查询(例如,添加LIMIT 0,30子句,以仅显示前30行)

    能否启用查询日志并查看服务器上实际执行的查询


    如果没有,请尝试从查询中删除元素,直到查询成功为止。让我们看看这个问题。或者显示一些表定义?

    您应该做的是删除phpmyadmin并承诺不再下载它


    然后启动命令行mysql提示符,并尝试相同的查询。这将告诉你这个查询是否真的很糟糕,或者phpmyadmin只是为了误导作者的不正当的快乐而对它进行破坏。

    Mmmmm。。。你能试着用反勾号替换引号吗?(或者完全删除它们)+1:感谢在标签中包含MySQL错误#-谢谢@佩卡,让我试试看会发生什么@天哪,是的,我讨厌有人发帖问,说他们在某件事上有错误,但他们实际上没有给你错误。就像你是一个奇怪的读心术者,仅仅通过看代码就能猜出他们犯了什么错误。我的意思是,我确信这是可能的,但大多数时候不是。完成咆哮P@Pekka不喜欢背虱,也不喜欢去掉背虱。仍然给我上面提到的同样的错误。这里有点随机。。删除AS别名周围的引号。仅供参考,'as'关键字是可选的。无空格。就我个人而言,我觉得如果你的表或列名中有空格,你应该被枪毙。不过还是我的意见P@spinon字体我同意空格的说法。我只是在第1行没有看到任何奇怪的东西,除了't1',等等。我认为这不是真正的表名。表名不是关键字,是吗?没有表名不是关键字。它们是非常可怕的表名,它们不可能是关键字。在这个例子中,没有额外的代码被添加,因为我已经检查过了。让我看看查询日志,看看它显示了什么?之后,我将尝试添加一些表定义。我删除了count子查询,结果发现这就是问题所在。但它看起来很基本。好的,另一个发现是,如果我删除了所有列的标签,那么它就可以工作了。如果不做任何更改,它就不能工作。我不知道发生了什么事。这一定是mysql内部的一个暂时性问题。有时我确实同意。虽然phpmyadmin让我很懒。有时我并不总是想使用命令行。当我需要细粒度控件时很棒,但当我不想输入太多时就不太好了。在星期五@3,后者肯定是这样。这引起了我的兴趣。你不喜欢PHPMyAdmin的哪些方面?我曾多次读到人们因为PHPMyAdmin故障而丢失数据或时间的故事;对我来说,这太冒险了。对于只读操作,这可能是正常的。