我在这里使用mysqli类:https://github.com/joshcam/PHP-MySQLi-Database-Class
...and在这个原始查询中遇到了问题:
$q = mysql_query("SELECT id, value, (
SELECT COUNT( * )
FROM ".$dbprefix."pages
WHERE roles = ".$dbprefix."roles.id
)count
FROM '".$dbprefix."roles' ORDER by id ASC");
$result = $db->rawQuery ($q);它不工作,我在MysqliDb.php的第776行得到一个致命的错误准备查询- mysql查询本身工作,但当我将它与mysqli类一起使用时,它不工作。我相信这跟计数(*)或者有条纹的标签或者...某物。我试过几种方法,但还是坚持了下来。也许我不是唯一一个有这个问题的人--也许有人可以帮助你?这将是伟大的!谢谢你的建议!
发布于 2015-03-11 03:52:38
由于您使用的是PHP-MySQLi-Database-Class,因此不需要手动处理表前缀-只需使用$db->setPrefix(...)进行设置。
那就不要做mysql_query(...) (它已经被弃用了!)当您选择的库直接执行此操作时。rawQuery()正在查找带有SQL查询的字符串,而不是mysql_query()返回的语句。
最后,尽可能避免子查询并替换为各种类型的JOIN -更好的性能和更好的可读性。一般来说,人们过度使用子查询-养成了一种习惯,每当你被子查询诱惑时,都会尝试找出一个JOIN解决方案。有时您必须使用子查询,但大多数情况下不...
$db->setPrefix ($dbprefix);
$sql = "SELECT id, value, COUNT(pages.roles) AS c
FROM roles
LEFT JOIN pages ON pages.roles = roles.id
ORDER by id ASC"
$result = $db->rawQuery($sql);https://stackoverflow.com/questions/28972512
复制相似问题