代码在公司,封了外网没法贴出来。
我描述下好了。第一次写php,比较笨请用力拍我TVT
一段sql查询,在phpmyadmin里执行正常,出结果。放在php里就报错。可能会是什么情况?
大致上是这样。
php+mysql,三个表查询,结果集用jquery输出到页面div里。函数:
query($sql,……)
{
……
if(!$query=mysql_query($sql))
{
echo $sql."<br />";
echo mysql_errno().":".mysql_error()."<br />"
exit();
mysql_query("set names utf8");
……
}这样出错,提示说我表连接条件处有语法错误。我确认没有漏写“`”,甚至完整的库名.表名.都添上去了。
最初怀疑mysql不能inner join,还改成,条件放where里照样出错。但奇怪的是,把echo出的sql语句复制出来放到phpmyadmin里执行一切正常……我没办法了,求高人指点TVTPS:引擎是MyISAM,php5.3。装的集成开发环境。

解决方案 »

  1.   

    echo mysql_errno().":".mysql_error()."<br />"
    这里最后没加 分号
      

  2.   

    嗯,谢谢-o-
    不过这段是我临时写的示意,实际错误不在这里。是在mysql_query上。嗯,还是继续求指导orz
      

  3.   

    那就是你的 sql语句有问题了。
    把你的 sql echo 出来看看
      

  4.   

    sql得明天回公司想办法了。现在在家。那sql放phpmyadmin里执行没有错。这就是我觉得奇怪的原因。
    只在php里执行时报错,说inner join后面的XX=XX那段有错,没具体错误原因。我去掉连接条件就正常了。但那样我没法做多表查询了啊……
    不知有高手遇到过类似情况的不orz
      

  5.   

    没遇过select * from table_a 
    left join talbe_b on (where table_a.id=table_b.id)
      

  6.   

    left join也用过,一样无效。括号倒是没加。
    明天再想办法吧,orz。
      

  7.   

    关键是如果sql扔进去没法执行倒是好办
    现在这样我不知该改哪里了,sql本身能执行。
    灵异了……
      

  8.   

    看一看是否是php与mysql的连接对象出问题.
      

  9.   

    -o-
    请问具体要怎么做呢?以前没写过web应用,一点概念也没有(抖我确认去掉连接表条件可以正常执行得到结果(虽说不是我想要的结果)
    而且按理已经报sql某处错误即是说已经执行到sql解释这一步了?
      

  10.   

    具体错误提示我明天来贴吧。
    大致上就是报sql语法错误。叫我check the manual,neer inner join后面那段。
    问题是echo出来的sql我复制了运行没错……
      

  11.   

    SQL,之前把inner join改掉了,还是错:
    SELECT `data`.ID,pollutant.PolName,device.MN,`data`.PolData FROM `data`,`device`,`pollutant` where `data`.PolID=pollutant.ID and `data`.MN=device.ID order by `data`.`ID` DESC LIMIT 0,10
    错误信息:
    1064:You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for right syntax to use near 'and `data`.MN=device.ID order by `data`.`ID` DESC LIMIT 0,10' at line 1以上sql复制出来可以在phpmyadmin里通过系统信息:
    wampserver2.0i php5.3.0 mysql5.1.36 apache2.2.11
    求解TVT
      

  12.   

    你是在做猜谜游戏吗?
    帖出你的sql语句!
      

  13.   

    楼主,强烈建议 把sql 输出一下。贴出来。
      

  14.   

    最新情况,确定问题在and `data`.MN=device.ID
    把这个去掉就行了。可,这么写实在看不出有什么问题么??inner join三个表也不行,不这么写我该怎么做才能连接3个表?
      

  15.   

    改成AND 1=1,还是错。
    环境换成更早的wamp版本,一样不行。就是说问题好像在那个and,mysql不能多表连接还是不能用and?