2013-07-22 18 views
5

Próbuję wstawić akcentowany e do bazy danych mysql po this example. Korzystanie z tego:Komenda SET NAMES kończy się niepowodzeniem z odmową dostępu

mysql_query("SET NAMES 'utf8'"); 

rzuca:

Warning: mysql_query() [function.mysql-query]: Odmowa dostępu dla użytkownika ODBC '@ 'localhost'

Odnowione połączenia z bazą danych:

DEFINE ('DB_USER', 'user'); 
DEFINE ('DB_PASSWORD', 'pword'); 
DEFINE ('DB_HOST', 'localhost'); 
DEFINE ('DB_NAME', 'test1'); 
$dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
+7

Błąd mówi 'mysql_error' i zapytanie używa' mysqli_connect' - jest tam coś podejrzanego? –

+0

AHHHH Dziękuję, jak głupio ode mnie. Nie rozwiązuje problemu zapisywania i akcentowania w moim DB, ale rozwiązuje problem, o który pytałem o połączenie. Dziękuję Ci. Zastanawiasz się tylko, czy wiesz, że teraz zapisuje akcent e i czarny traingle z? w środku, wiesz dlaczego/jak to rozwiązać? – snookian

+1

Wypróbowałeś którekolwiek z innych rzeczy wymienionych na http://stackoverflow.com/questions/279170/utf-8-all-the-way-through, takich jak zapisywanie plików PHP jako UTF-8 ([bez BOM] (http://stackoverflow.com/questions/8028957/headers-already-sent-by-php)) i ustawienie "accept-charset" na dowolnym formularzu? Jeśli tak, zadaj osobne pytanie. – PleaseStand

Odpowiedz

9

nie mieszać wykorzystanie mysql_* iFunkcje. Zamiast

mysql_query("SET NAMES 'utf8'"); 

użytku

$dbc->set_charset('utf8'); 
2

myślę, że nie ma żadnego problemu w związku nie jest problem, że używasz mysql_query i łączysz się z mysqli_connect.

Więc użyj mysqli_query, aby wykonać zapytanie. Wydaje się działać

+0

Tak, dziękuję, Amal Murali już mi to zasugerował, ale dziękuję też. – snookian

+0

@nonoekian, jeśli jest to pomocne, następnie zaakceptuj odpowiedź. –

+1

Najnowsze informacje znajdują się na stronie http://dev.mysql.com/doc/apis-php/en/apis-php-mysqli.set-charset.html. Zawiera ona informacje na temat proceduralnych i obiektowych sposobów nawiązywania i zmiany UTF8. – KarlosFontana

0

spróbować czegoś takiego:

$dbc = mysql_connect ('localhost', 'user', 'pword'); 
mysql_select_db('test1',$dbc); 
mysql_query('SET NAMES "utf8"',$dbc); 
Powiązane problemy