0
我在维护一个旧的网站,它在mysql查询上抛出一些sql错误。错误如下...嵌套查询的SQL语法错误
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 'OR syprc_serial IN (SELECT b.syprc_serial FROM syproductcategories.b WHERE b.syp' at line 1
我怀疑这是与我的嵌套选择的语法,但我没有成功地解决这个问题呢!任何人都得到了一些见解
$query = "SELECT syprc_serial, syprd_serial, sypcd_description, sypdd_title, sypdd_shortdescription, sypdd_longdescription, sypdd_primarypackage, sypdd_owner, syprd_image01, syprc_subcategoryof ".
"FROM syproductcategories, syproductcategoriesdescription, syproducts, syproductsdescription ".
"WHERE syprc_serial = sypcd_productcategoryserial ".
"AND syprd_categoryserial = syprc_serial ".
"AND sypdd_languagecode = '". $_SESSION['language']."' ".
"AND sypcd_languagecode = '". $_SESSION['language']."' ".
"AND syprd_serial = sypdd_productserial ".
"AND syprc_companyserial = '" . $_SESSION['company'] ."' ".
"AND syprd_companyserial = '" . $_SESSION['company'] ."' ".
"AND syprd_active = 1 ".
"AND (syprc_serial = $syprc_serial ".
"OR syprc_serial IN (SELECT b.syprc_serial FROM syproductcategories b WHERE b.syprc_subcategoryof = $syprc_serial) ".
"OR syprc_subcategoryof IN (SELECT b.syprc_serial FROM syproductcategories b WHERE b.syprc_subcategoryof = $syprc_serial) ".
") ".
"ORDER BY syprc_serial, sypdd_title, syprd_serial";
如果您只是在该行后面打印您的查询,您应该看到它的外观以及检查错误的方式。 – Olli 2014-09-19 09:59:01
@TheChaos如果没有真正的查询,我们只能推测'$ syprc_serial'计算结果为空字符串... – VMai 2014-09-19 10:05:14
你在哪里定义'b'?错误消息和查询看起来不一样:'FROM syproductcategories b'没有点... – 2014-09-19 10:07:33