2013-10-10 4 views
-2

Я знаю, что PHP ext/mysql API устарел, и я не должен его использовать, но это не мой вопрос, мой вопрос в том, что у меня есть эта часть кода, которая учитывает идентификаторы в моей таблице, она работает и теперь ее не, по какой-либо причине, насколько я вижу.mysql count работает неправильно?

может кто-нибудь, пожалуйста, покажите мне, где я ошибаюсь с кодом.

им получать эту ошибку:

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 не проверяет, какой идентификатор сеанса принадлежит тому сайту, на котором подвержены сеансы. Это распространенное неверное мнение, которое имеет большинство программистов PHP. –

ответ

0

Глобальное соединение $ var не установлено.

Ссылка на то, как подключиться к серверу MySQL: http://php.net/manual/en/function.mysql-connect.phpp

Для вас:

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

И Mysql не устарела, и это прекрасно, чтобы использовать его. Просто API-интерфейс php, который вы используете для него, лишен.

+0

Я думаю, что это то, что он имел в виду - PHP ext/mysql устарел. Сервер базы данных MySQL - отличный выбор, нужно просто использовать другое расширение PHP для доступа к нему. –

0

Что-то в вашей программе происходит вверх или вниз, чтобы заменить глобальную переменную подключения $. Это действительно плохой совет, но, чтобы получить ваш скрипт работает снова вы можете попробовать удалить параметр соединения $ с вашего mysql_query() вызов так, что он читает

$check_new_friends_set = mysql_query($query); 

Это делает mysql_query() использовать ранее установленное соединение , если имеется один доступный

Смежные вопросы