Ошибка ресурса параметра MySQL - PullRequest
1 голос
/ 07 апреля 2010

Вот моя ошибка:

Предупреждение: mysql_query () ожидает, что параметр 2 является ресурсом, значение NULL ...

Это относится к строке 23 моего кода:

$result = mysql_query($sql, $connection)

Весь мой код запроса выглядит так:

$query = "SELECT * from users WHERE userid='".intval( $_SESSION['SESS_USERID'] )."'"; 
                $result = mysql_query($query, $connection)
                or die ("Couldn't perform query $query <br />".mysql_error());

                $row = mysql_fetch_array($result);

Понятия не имею, что здесь произошло. Все, что я хотел сделать, это отобразить значение полного имени пользователя в разделе заголовка моей веб-страницы. Итак, я вывожу этот код сразу после того, как попробую и достигну этого:

echo 'Hello '; echo $row['fullname'];

До этого изменения у меня было все отлично, когда переменная сеанса с полным именем отображалась в виде $ _SESSION ['SESS_NAME']. Однако, поскольку мой пользователь может обновлять свою информацию (включая имя), я хотел, чтобы имя, отображаемое в заголовке, обновлялось соответствующим образом, а не отображало значение сеанса.

Ответы [ 5 ]

3 голосов
/ 07 апреля 2010

Ваша $connection переменная NULL, это то, на что ссылается ваше сообщение об ошибке.

Причина в том, что вы не позвонили mysql_connect. После вызова он назначит вам ресурс , где вы можете установить его в переменную $connection, таким образом, он будет ненулевым.

Как пример:

$connection = mysql_connect('localhost', 'mysql_user', 'mysql_password');
// now $connection has a resource that you can pass to mysql_query
$query = "SELECT * from users WHERE userid='".
                                         intval( $_SESSION['SESS_USERID'] )."'"; 
$result = mysql_query($query, $connection)
1 голос
/ 11 ноября 2013

включает соединения mysql в ваш файл класса, например:

соединение / mysql.php

<?
$hostname_MySQL = "localhost";
$database_MySQL = "database";
$username_MySQL = "user";
$password_MySQL = "password";

$MySQL = mysql_pconnect($hostname_MySQL, $username_MySQL, $password_MySQL) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database_MySQL,$MySQL);
?>

class.php

<?
include "Connections/MySQL.php";
class utils {
    public function myFunction()
        {
        global $MySQL;
        $sql =  "select * from table"; 
        $rs = mysql_query($sql, $MySQL) or die(mysql_error());
        $filas = mysql_fetch_assoc($rs);
        $totalFilas = mysql_num_rows($rs);
        ...
        }
    }
?>
0 голосов
/ 07 апреля 2010

Вам нужно сделать:

$connection=mysql_connect('host','user','pass');
if($connection === false) {
 echo "Error in connection mysql_error()";
}
0 голосов
/ 07 апреля 2010

$ соединению присваивается значение идентификатора ресурса соединения с базой данных. В вашем сценарии этого нет, поэтому значение $ connection равно NULL, поэтому вы получаете сообщение об ошибке. Вам необходимо подключиться к базе данных перед использованием mysql_query (). После этого все будет в порядке.

0 голосов
/ 07 апреля 2010

У вас есть два способа сделать это, вам нужно использовать mysql_connect для подключения к вашей базе данных, вы можете передать это в mysql_query, если хотите, если вы ничего не передаете в mysql_query PHP использует последняя ссылка открыта с mysql_connect

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

$sql = "SELECT id as userid, fullname, userstatus 
        FROM   sometable
        WHERE  userstatus = 1";

$result = mysql_query($sql);

Вы подключились к своей базе данных? Если да, пожалуйста, покажите этот код тоже.

А пока попробуйте удалить переменную $connection, например:

$result = mysql_query($query);

И посмотри, куда тебя это приведет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...