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

Что не так с моим кодом? Я получаю эту ошибку: 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 голосов
/ 05 января 2010

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

В области действия нет $db.

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

4 голосов
/ 05 января 2010

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

1 голос
/ 05 января 2010

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

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

1 голос
/ 05 января 2010

Хорошо, я бы сказал, что $ 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");
?>

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

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

  • переменная $ db установлена ​​правильно

  • переменная $ db находится в пределах вашей функции. Попробуйте сделать его глобальным , если необходимо, или передать его функции в качестве аргумента

0 голосов
/ 05 января 2010

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

0 голосов
/ 05 января 2010

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

$result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or exit( mysql_error() );
0 голосов
/ 05 января 2010

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

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

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