2013-10-10 79 views
-2

我知道PHP的ext/mysql API已經過時了,我不應該使用它,但是這不是我的問題,我的問題是我有這段代碼來計算我的表中的id,它正在工作,現在它的不,據我所知,沒有任何理由。mysql計數不正確?

有人可以告訴我哪裏我錯了代碼謝謝。

即時得到這個錯誤:

Warning: mysql_query() expects parameter 2 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/site.com/includes/functions.php on line 2023 
Database query failed 

我的表:

ptb_friend_requests

id | from_user_id | to_user_id | read_request | approved_request | delete_request 

1   2    1   0     0     0 

MySQL代碼:

function check_new_friends() { 
     global $connection; 
     global $_SESSION; 
     $query = "SELECT COUNT(id) FROM ptb_friend_requests WHERE to_user_id=".$_SESSION['user_id']." AND deleted_request='0' AND read_request='0' AND approved_request='0' AND from_user_id != '0'"; 
     $check_new_friends_set = mysql_query($query, $connection); 
     confirm_query($check_new_friends_set); 
     return $check_new_friends_set;  
    } 

HTML:

$check_profile_views_set = check_profile_views(); 
while ($newf = mysql_fetch_array($check_profile_views_set)) { 

echo "<div class=\"friend-notify\">". $newf['COUNT(id)'] ."</div>"; 

//$check_new_duos_set = check_new_escort_duos(); while ($newd = mysql_fetch_array($check_new_duos_set)) { ?> 

<? echo "". $newf['COUNT(id)'] .""; ?><? } ?> 
+0

**對mysql_ *函數沒有更多支持**,它們是[**官方不推薦使用的**](https://wiki.php.net/rfc/mysql_deprecation) ,**不再保留**,將來會[**刪除**](http://php.net/manual/en/function.mysql-connect.php#warning)。您應該使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/msqli)更新您的代碼,以確保您的項目未來的功能。 – Neal

+2

錯誤消息很自我解釋 - 你的全局變量'$ connection'不是一個實際的MySQL連接,而是NULL。所以做一些調試以找出方法! – CBroe

+0

提示不要盲目地相信$ _SESSION數組是安全的,如果您在共享虛擬主機上。 PHP不會檢查會話ID屬於什麼網站,所以會話很容易..這是大多數PHP程序員常見的錯誤。 –

回答

0

未設置全局$ connection var。

鏈接到如何連接到MySQL服務器:http://php.net/manual/en/function.mysql-connect.phpp

對於你:

global $connection; 
$connection=mysql_connect('localhost', 'mysql_user', 'mysql_password'); 

和MySQL是沒有過時,它是完全沒有使用它。只是你正在使用的PHP API被depricated。

+0

我認爲這就是他的意思--PHP的ext/mysql已經過時了。 MySQL數據庫服務器是一個不錯的選擇,應該使用不同的PHP擴展來訪問它。 –

0

程序中的某些內容會高於或忽略全局連接變量 。這是非常糟糕的建議,但讓你的腳本工作 你可以再次嘗試從您的mysql_query取出$連接參數()調用 以便讀取

$check_new_friends_set = mysql_query($query); 

這將使的mysql_query()使用先前建立的連接,如果有一個可用