«Предупреждение: mysql_query (): предоставленный аргумент не является допустимым MySQL-Link» - Почему?

0

Что случилось с моим кодом? Я продолжаю получать эту ошибку: Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in functions.php on line 4 error reading database

function gameTableCheck($gn) 

{

    $result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or die ('error reading database'); //This is line 4
    if (mysql_num_rows ($result)>0) {
        return true;
    } else {
        return false;
    }
}

if( gameTableCheck($page) === false ) {
        echo "MAO";
        die();
    }
Теги:

7 ответов

4
Лучший ответ

$db не является локальной переменной внутри функции gameTableCheck, вам нужно добавить оператор global $db; в верхней части функции.

  • 2
    или (лучше IMO) передать $ db в качестве параметра функции
  • 1
    Конечно, это предполагает, что в глобальной области видимости есть $db .
Показать ещё 1 комментарий
4

Проблема здесь: mysql_query("SHOW TABLES LIKE '$gn'",$db)

В области не существует $db.

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

1

Ну, я бы сказал, что $db не инициализируется правильно. Вы хотите использовать mysql_select_db как таковой:

<?php
$host = "localhost"; //database location
$user = "user"; //database username
$pass = "pass"; //database password
$db_name = "thename"; //database name

//database connection
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db_name);

//sets encoding to utf8
mysql_query("SET NAMES utf8");
?>

(фрагмент через)

Если по какой-либо причине вам нужно иметь указанную переменную базы данных по каждому запросу, попробуйте посмотреть, есть ли:

1

Я предполагаю, что $db не является допустимым подключением к базе данных. Вы заранее подключились к базе данных? Является ли $db доступным в этой области действия?

Вы можете сделать глобальную область с помощью global $db перед вызовом функции.

0

чтобы найти ошибку, вы можете попробовать поместить mysql_error()

$result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or exit( mysql_error() );
0

Функция gameTableCheck() не знает, что такое переменная $db. Поскольку PHP не имеет динамического охвата, вам нужно либо объявить переменную как global внутри функции (если она является глобальной переменной), либо передать ее как параметр в вызове функции.

0

Вы забыли открыть соединение с вашей базой данных ($ db в своем коде) и выбрать базу данных перед выполнением запроса на нее. Ошибка говорит, что переменная $db в вашем коде не является допустимым ресурсом, и поэтому она не определена.

Смотрите: http://php.net/manual/en/function.mysql-query.php и http://www.php.net/manual/en/function.mysql-connect.php

Ещё вопросы

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