Вот настряпал, а почему нет доступа? к БД

miniweber

Новичок
вот вайл функции
PHP:
<?php
/*Функция подключения к базе данных*/
global $ContentMYSQL;
function MYSQLconnect()	{ 
	global $ContentMYSQL,$username,$userpass,$host,$bazaname;
	//$host="localhost";$username="12";$userpass="12";$bazaname="12";
	if(!empty($ContentMYSQL)) return true;
	$ContentMYSQL=@mysql_connect($host, $username, $userpass) or die (mysql_error($ContentMYSQL));
	@mysql_select_db($bazaname, $ContentMYSQL) or die (mysql_error($ContentMYSQL));
	return true;
			 } ;
/*----------------------------------------------------------*/
/*функция выполнения запроса к базе данных*/
function MYSQLquery($MYSQLquery){
	global $ContentMYSQL;
	$result=@mysql_query($MYSQLquery, $ContentMYSQL) or die(mysql_error($ContentMYSQL));
        return $result;
				};
?>
вот файл индекс
PHP:
<?php
include_once("control/function.php");
include_once("control/config.php");
MYSQLconnect();
$MYSQLquery="CREATE DATABASE db_name";
MYSQLquery($MYSQLquery);
?>
в итоге скрипт выдаёт ошибку. Access denied for user '12'@'localhost' to database 'db_name'
я так понел у пользователя нет доступа, а почему и как исправить?
если вопрос простой прошу не закидывать бубнами я навичок.
 

miniweber

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

Фанат

oncle terrible
Команда форума
во-первых, переменная $ContentMYSQL не нужна. если её убрать из кода, его поведение никак не изменится.
во-вторых, оператор оператор @ так же не нужен. без него код будет работать точно так же.
в-третьих, or die() в MYSQLconnect() - лишние. Без них код будет работать точно так же, только хуже
в-четвертых, or die(mysql_error($ContentMYSQL)); в MYSQLquery следует заменить на
PHP:
or trigger_error(mysql_error().$MYSQLquery);
в-пятых, нужно написать ещё функции-хелперы, для получения актуальных данных из БД, чтобы получить, к примеру, сразу массив.
и ещё я бы не писал такие развесистые имена переменных, но это уже вкусовщина.
 

miniweber

Новичок
вот опять проблемма.
вот код когда работает, то в функции MYQSLquery(); теперь нужно прописывать функцию подключения к бд.
PHP:
<?php
/*Функция подключения к базе данных*/

function MYSQLconnect()	{ 
	global $username,$userpass,$host,$bazaname;
	//$host="localhost";$username="12";$userpass="12";$bazaname="12";
	
	$MYSQLconnect=mysql_connect($host, $username, $userpass)or die('no connect');
	mysql_select_db($bazaname,$MYSQLconnect);
	return true;
			 } ;
/*----------------------------------------------------------*/
/*функция выполнения запроса к базе данных*/
function MYSQLquery($MYSQLquery){
	MYSQLconnect();
	$result=mysql_query($MYSQLquery)or die('no');
        return $result;
				};
?>
а если сделать вот так
PHP:
<?php
/*Функция подключения к базе данных*/

function MYSQLconnect()	{ 
	global $username,$userpass,$host,$bazaname;
	//$host="localhost";$username="12";$userpass="12";$bazaname="12";
	
	$MYSQLconnect=mysql_connect($host, $username, $userpass)or die('no connect');
	mysql_select_db($bazaname,$MYSQLconnect);
	return true;
			 } ;
/*----------------------------------------------------------*/
/*функция выполнения запроса к базе данных*/
function MYSQLquery($MYSQLquery){
	
	$result=mysql_query($MYSQLquery,$MYSQLconnect)or die('no');
        return $result;
				};
?>
то выдаёт ошибку:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test1.ru\www\control\function.php on line 16
no
Подскажите пожалуйста что не так. ?
 

miniweber

Новичок
Без неё выдаёт ошибку
PHP:
/*функция выполнения запроса к базе данных*/
function MYSQLquery($MYSQLquery){
    
/*16 строка*/    $result=mysql_query($MYSQLquery,$MYSQLconnect)or die('no');
        return $result;
                };
?>
а вот ошибка
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\test1.ru\www\control\function.php on line 16
no
что не так? где касяк?
 

Фанат

oncle terrible
Команда форума
наоборот - это С НЕЙ выдаёт ошибку.
если её убрать из кода, то ошибка пропадёт

переменная $MYSQLconnect в этом коде не нужна.
её надо просто везде убрать
 
Сверху