Предупреждение: mysql_select_db (): предоставленный аргумент не является допустимым ресурсом MySQL-Link - PullRequest
0 голосов
/ 15 апреля 2011

Это код, в котором я постоянно получаю сообщение об ошибке. Этот же файл включений работает на других страницах, у меня только проблемы на этой странице. Вот ошибка

Предупреждение: mysql_select_db (): предоставленный аргумент не является допустимым ресурсом MySQL-Link в /var/www/html/spywgc/adm/ctshell/getproduct/getproduct.php в строке 18

А вот и актуальный код:

<?php require_once('../../../Connections/spyware_adm.php'); ?>
<?php require_once('../../../includes/lib_gen.php'); ?>

<?php
//function for returing status of website
function Visit($url)
{
    echo $url;
    mysql_select_db($database_spyware, $spyware) || die(mysql_error());
    $select_url= "select product_id from sp_url where url like '%{$url}%'";
    echo $select_url;
    $run_url= mysql_query($select_url, $spyware);
    $result_descr = mysql_fetch_assoc($run_url);
    echo $result_descr;
    return $result_descr;

}
?>

Ответы [ 3 ]

1 голос
/ 15 апреля 2011

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

function Visit($url)
{
    $spyware = mysql_connect(); // set this to connect properly
    echo $url;
    mysql_select_db($database_spyware, $spyware) || die(mysql_error());
    // the rest of your function goes on ...
1 голос
/ 15 апреля 2011

Я бы предположил, что эти две переменные $spyware и $database_spyware null, потому что они определены (если вообще) вне области вашей функции и не объявлены как глобальные.Попробуйте добавить

global $database_spyware, $spyware

в начале функции Visit (..).

0 голосов
/ 15 апреля 2011

Вы проверили, если ваш первоначальный вызов подключения к базе данных успешно? Это возвращает false при неудаче, как и большинство функций mysql. Кроме того, вы еще не проверили, успешно ли выполнен запрос. Скорее всего, это не удалось и вернул FALSE, который вы затем передали в вызов fetch:

$database_spyware = mysql_connect(...);
if ($database_spyware === FALSE) {
   die("Connection failed: " . mysql_error());
}

... etc ...

$run_query = mysql_query(...);

if ($run_query === FALSE) {
   die("Query failed: " . mysql_error());
}

должна быть минимально допустимой обработкой ошибок.

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