我在PHP中收到一个关于有效查询的错误,该查询在直接从PHPMyAdmin运行时执行良好。
以前有没有人遇到过类似的问题,可以为我指明正确的方向?
下面是错误以及用于执行查询的函数。
Array
(
[Error] => Invalid Query : SELECT * FROM users ORDER BY userDeleted ASC, userFullname ASC
)
Array
(
[Error] => Empty MySQL resource.
)
public function query($q){
if(empty($q)) $this->dbError('Empty MySQL Query.');
if($this->linkID == 0) $this->connect();
$temp = @mysql_query($q, $this->linkID);
if(!$temp) $this->dbError('Invalid Query : '.mysql_error().'<br />'.$q);
return $temp;
}
public function getUsers(){
$q = "SELECT * FROM users ORDER BY userDeleted ASC, userFullname ASC";
$result = $this->query($q);
更新:数据库通过以下方式连接:
private function connect(){
if(!$this->linkID){
$this->linkID = @mysql_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD);
if(!$this->linkID) $this->dbError('Could not connect: ' . mysql_error());
$this->select_db();
}
return $this->linkID;
}
function select_db(){
if($this->linkID){
if(!@mysql_select_db(DB_NAME, $this->linkID)) $this->dbError('Can not use Database : ' . mysql_error());
}
}
您没有选择数据库。这意味着php(或phpmyadmin)不知道你在谈论哪个数据库!
如果不是这样,那么这可能与您的表设置有关。将@on方法隐藏所有错误和警告,这有利于生产和调试。。。不是。
您要么没有选择数据库,要么没有建立到MySQL服务器的连接(要么不可用,可能是服务器关闭或设置/密码不正确?)
删除所有这些@并重新运行代码
请确保您可以看到发生的错误。
取出@符号,看看是否显示任何错误。