Не работает mysql_real_escape_string

Insight707

Новичок
Здравствуйте.

Возникла странная проблема у меня. При попытке вставить что либо с помощью mysql_real_escape_string выскакивает ошибка:

mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/sniper/data/www/ucp.rp-skyland.ru/tickets.php on line 158

mysql_real_escape_string(): A link to the server could not be established in /var/www/sniper/data/www/ucp.rp-skyland.ru/tickets.php on line 158

Нагуглив узнал, что ошибка выскакивает из-за того, что нету коннекта к БД. Но на самом деле он есть.
Вставляются другие значения типа id и id персонажа, а так же дата.
Не вставляется текст, заголовок (т.е. текстовые поля).

запрос:

PHP:
mysql_query ("INSERT INTO ucp_tickets (`id`,`theme`,`char`,`text`,`screens`,`status`,`admincomment`,`date`) VALUES ('','".mysql_real_escape_string($_POST['zagolovok')."','".intval($_POST['charname'])."','".mysql_real_escape_string($_POST['text'])."','".mysql_real_escape_string($screens)."','0','','$date')",$sql1);
вот что вставляется:



В функции объявлены переменные соединения:

PHP:
function checkform () {
global $sql1,$sql2,$uid;
Не используя эту функцию данные заносятся в БД. С ней - ошибка.

ЧЯДНТ?
 

Вурдалак

Продвинутый новичок
Могу лишь предположить, что открывается второе соединение, потом закрывается. В результате последний открытый линк оказывается невалидным, поэтому тебе нужно явно передавать его вторым аргументом:
PHP:
mysql_real_escape_string('string', $sql1)
Но с таким подходом ты быстро затрахаешься.
 

Insight707

Новичок
Могу лишь предположить, что открывается второе соединение, потом закрывается. В результате последний открытый линк оказывается невалидным, поэтому тебе нужно явно передавать его вторым аргументом:
PHP:
mysql_real_escape_string('string', $sql1)
Но с таким подходом ты быстро затрахаешься.
Вот так у меня открывается коннект:

PHP:
//php_bb


		$sql1=mysql_connect($sql, $login, $password);
		mysql_select_db($db,$sql1);

mysql_query("SET NAMES CP1251");
		
		
//samp_bd		


		$sql2=mysql_connect($gamesql, $gamelogin, $gamepassword); 
		mysql_select_db($gamedb,$sql2);
		
mysql_query("SET NAMES CP1251");
Соединения mysql закрываются только после выполнения скрипта, в котором у меня проблема.

Хорошо, сейчас попробую с аргументом.
 

Insight707

Новичок
PHP:
'".mysql_real_escape_string($_POST['zagolovok'],$sql1)."'
Спасибо, вот так работает.
Надо было сразу прочитать об аргументах mysql_real_escape_string на сайте.
 
Сверху