(Предупреждение: mysql_fetch_assoc (): указанный аргумент не является допустимым ресурсом результатов MySQL), за исключением того, что запрос возвращает данные

0

ОК. Так что этот код, который я запускаю, не работает вообще. Когда я запускал запрос непосредственно на сервере, он работал, однако это не работает на моей веб-странице. Я прошел через все страницы справки и не могу определить ошибку. Пожалуйста помоги.

function getUserData($id) {
        $servername = "******************";
        $dbname = "***********";
        $sql_username = "************";
        $sql_password = "****************";
        $conn = mysql_connect($servername, $sql_username, $sql_password, $dbname);
        $userData = array();
        $sql = mysql_query("SELECT * FROM users WHERE user_id ='".$id."'");
        while ($row = mysql_fetch_assoc($sql)) {

        $userData['id'] = $row['id'];   
        $userData['user_name'] = $row['username'];
        $userData['password'] = $row['password'];       
        $userData['aboutme'] = $row['aboutme'];     
        $userData['first_name'] = $row['fname'];
        $userData['last_name'] = $row['lname'];     
        $userData['gender'] = $row['gender'];
        $userData['user_email'] = $row['email'];    
        $userData['country'] = $row['country']; 
        $userData['language'] = $row['language'];   
        $userData['send_emails'] = $row['sendemails'];
        $userData['date'] = $row['date'];           
        }
        return $userData;
    }
    function getUserId($username) {
        $servername = "*********************";
        $dbname = "*********";
        $sql_username = "***********";
        $sql_password = "***********";
        $conn = mysql_connect($servername, $sql_username, $sql_password, $dbname);
        $sql = mysql_query("SELECT user_id FROM users WHERE user_name = '".$username."'");
        while ($row2 = mysql_fetch_assoc($sql)) {
            return $row2['user_id'];            
        }
    }

Это то, что называется fucntions.

    $userData = getUserData(getUserId($_SESSION['valid_user']))
  • 0
    возможный дубликат PHP - функция для mysql_fetch_assoc
  • 3
    mysql_connect($servername, $sql_username, $sql_password, $dbname) mysql_connect() принимает только 3 основных параметра php.net/manual/en/function.mysql-connect.php . 4-й не для того, что вы думаете. Это синтаксис mysqli_() . Вам нужно использовать mysql_select_db() php.net/manual/en/function.mysql-select-db.php
Показать ещё 2 комментария
Теги:
mysqli

1 ответ

1

mysql_connect($servername, $sql_username, $sql_password, $dbname)

  • mysql_connect() принимает только 3 основных параметра:

bool mysql_select_db (строка $ database_name [, resource $ link_identifier = NULL])

Согласно руководству:

http://php.net/manual/en/function.mysql-select-db.php

  • 4-й параметр не для того, что вы думаете. Это синтаксис mysqli_().

Вам нужно использовать mysql_select_db() http://php.net/manual/en/function.mysql-select-db.php

Из руководства также:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

Из mysql_connect():

ресурс mysql_connect ([string $ server = ini_get ("mysql.default_host") [, string $ username = ini_get ("mysql.default_user") [, string $ password = ini_get ("mysql.default_password") [, bool $ new_link = false [, int $ client_flags = 0]]]]])

Открывает или повторно использует соединение с сервером MySQL.


  • 1
    Как обычно, отличный ответ, сэр Фред! Все это mysql_* делает меня грустной пандой :-(
  • 1
    @ Darren Спасибо, Даррен. Да, однажды ... mysql_ будет просто воспоминанием в чьих-то старых 256 КБ оперативной памяти.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню