代码在公司,封了外网没法贴出来。
我描述下好了。第一次写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。装的集成开发环境。
我描述下好了。第一次写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。装的集成开发环境。
这里最后没加 分号
不过这段是我临时写的示意,实际错误不在这里。是在mysql_query上。嗯,还是继续求指导orz
把你的 sql echo 出来看看
只在php里执行时报错,说inner join后面的XX=XX那段有错,没具体错误原因。我去掉连接条件就正常了。但那样我没法做多表查询了啊……
不知有高手遇到过类似情况的不orz
left join talbe_b on (where table_a.id=table_b.id)
明天再想办法吧,orz。
现在这样我不知该改哪里了,sql本身能执行。
灵异了……
请问具体要怎么做呢?以前没写过web应用,一点概念也没有(抖我确认去掉连接表条件可以正常执行得到结果(虽说不是我想要的结果)
而且按理已经报sql某处错误即是说已经执行到sql解释这一步了?
大致上就是报sql语法错误。叫我check the manual,neer inner join后面那段。
问题是echo出来的sql我复制了运行没错……
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
帖出你的sql语句!
把这个去掉就行了。可,这么写实在看不出有什么问题么??inner join三个表也不行,不这么写我该怎么做才能连接3个表?
环境换成更早的wamp版本,一样不行。就是说问题好像在那个and,mysql不能多表连接还是不能用and?