Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PHP не воспринимает русские буквы из базы MySql
Форумы портала PHP.SU » » Вопросы новичков » PHP не воспринимает русские буквы из базы MySql

Страниц (1): [1]
 

1. Less - 02 Мая, 2013 - 17:19:06 - перейти к сообщению
База сделана с кодировкой
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | cp1251 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP header('Content-type: text/html; charset=utf-8'); ?>
  3.  
  4. <html>
  5.    <head>
  6.       <title> СУБД </title>
  7.      
  8.    </head>
  9.    <body bgcolor="lavender">
  10.      <h1>
  11.      <font><i><b>
  12.      Электронный секретариат 1.0
  13.       </b></i></font>
  14.     </h1>
  15.      <img src="C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site\images\images.jpg"/>
  16.      
  17.      <FORM ACTION="HandleForm.php">
  18.      First Name <INPUT TYPE=TEXT NAME="FirstName" SIZE=20xBR>
  19.      <INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
  20.      </FORM>
  21.      
  22.      
  23. <?PHP
  24. $hostname = "localhost";  
  25. $username = "root";          
  26. $password = "123";          
  27. $database = "el_secretariat";
  28. @mysql_pconnect($hostname, $username, $password) or die("Could not connect to MySQL server!");
  29. @mysql_select_db($database) or die("Could not select company database!");
  30. mysql_query ("set_client='utf8'");
  31. mysql_query ("set character_set_results='utf8'");
  32. mysql_query ("set collation_connection='utf8_general_ci'");
  33. mysql_query ("SET NAMES utf8");
  34. print "Вы подключены к базе данных MySQL!<br>";
  35.  
  36. $query = "SELECT * FROM `Person_tbl`";
  37. $res = mysql_query($query);
  38. while($row = mysql_fetch_array($res))
  39. {
  40. echo "ФИО: ".$row['FIO']."<br>\n";
  41. echo "Дата рождения:".$row['DateBorn']."<br>\n";
  42. echo "Домашний адрес:".$row['HomeAddress']."<br><hr>\n";
  43. }
  44.  
  45. ?>


в браузере
Вы подключены к базе данных MySQL!
ФИО: €ў ­®ў €ў ­ €ў ­®ўЁз
Дата рождения:1978-01-22
Домашний адрес:’ўҐам, Ќ®ЈЁ­ 74/115


что ж мне делать то?
2. esterio - 02 Мая, 2013 - 17:27:45 - перейти к сообщению
Less пишет:
| character_set_client | cp1251 |
| character_set_connection | cp1251 |


Less пишет:
<?PHP header('Content-type: text/html; charset=utf-8'); ?>


Вам не кажется что кодировка разная
3. Less - 02 Мая, 2013 - 17:30:21 - перейти к сообщению
Сделала одинаковое - безрезультатно
4. esterio - 02 Мая, 2013 - 17:32:24 - перейти к сообщению
Как именно сделали. Мб поможет
5. Less - 02 Мая, 2013 - 17:33:21 - перейти к сообщению
(Добавление)
<?php header('Content-type: text/html; charset=utf-8'); ?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


У меня уже создана база, я пробовола как utf создавать, то же самое

не помогло
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <?PHP header('Content-type: text/html; charset=utf-8'); ?>
  2.  
  3. <html>
  4.    <head>
  5.    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6.    <title> СУБД </title>
  7.    </head>
  8.    <body bgcolor="lavender">
  9.      <h1>
  10.      <font><i><b>
  11.      Электронный секретариат 1.0
  12.       </b></i></font>
  13.     </h1>
  14.      <img src="C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site\images\images.jpg"/>
  15.      
  16.      <FORM ACTION="HandleForm.php">
  17.      First Name <INPUT TYPE=TEXT NAME="FirstName" SIZE=20xBR>
  18.      <INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
  19.      </FORM>
  20.      
  21.      
  22. <?PHP
  23. $hostname = "localhost";  
  24. $username = "root";          
  25. $password = "123";          
  26. $database = "el_secretariat";
  27. @mysql_pconnect($hostname, $username, $password) or die("Could not connect to MySQL server!");
  28. @mysql_select_db($database) or die("Could not select company database!");
  29. mysql_query ("set_client='utf8'");
  30. mysql_query ("set character_set_results='utf8'");
  31. mysql_query ("set collation_connection='utf8_general_ci'");
  32. mysql_query ("SET NAMES utf8");
  33.  
  34. print "Вы подключены к базе данных MySQL!<br>";
  35.  
  36. $query = "SELECT * FROM `Person_tbl`";
  37. $res = mysql_query($query);
  38. while($row = mysql_fetch_array($res))
  39. {
  40. echo "ФИО: ".$row['FIO']."<br>\n";
  41. echo "Дата рождения:".$row['DateBorn']."<br>\n";
  42. echo "Домашний адрес:".$row['HomeAddress']."<br><hr>\n";
  43. }
  44.  
  45. ?>
  46.  

(Добавление)
добавлять русский текст через консоль mysql.exe пиши SET NAMES cp866; непосредственно перед командой INSERT;

это меня спасло!
6. Less - 03 Мая, 2013 - 14:19:41 - перейти к сообщению
А как можно добавить в код пхп чтобы выполнялась SET NAMES cp866; при заполнении таблицы из формы пхп?
7. DeepVarvar - 03 Мая, 2013 - 14:30:07 - перейти к сообщению
С цп866 никто не работает.
8. Less - 03 Мая, 2013 - 14:35:56 - перейти к сообщению
Только так и работает, если вводить с консоли
CODE (SQL):
скопировать код в буфер обмена
  1. SET NAMES cp866;
  2. INSERT INTO person_tbl

чтобы в броузере выводились русские буквы
9. snikers987 - 03 Мая, 2013 - 14:37:46 - перейти к сообщению
сам файл скрипта то в какой кодировке?
10. LIME - 03 Мая, 2013 - 14:38:26 - перейти к сообщению
11. Less - 03 Мая, 2013 - 14:39:04 - перейти к сообщению
utf-8 без ВОМ
12. LIME - 03 Мая, 2013 - 14:39:41 - перейти к сообщению
))
13. Less - 03 Мая, 2013 - 14:40:03 - перейти к сообщению
У меня вот такой код
PHP:
скопировать код в буфер обмена
  1. <?PHP header('Content-type: text/html; charset=utf-8');
  2.  
  3. $hostname = "localhost";  
  4. $username = "root";          
  5. $password = "123";          
  6. $database = "el_secretariat";
  7.  
  8. @mysql_pconnect($hostname, $username, $password) or die("Could not connect to MySQL server!");
  9. @mysql_select_db($database) or die("Could not select company database!");
  10. mysql_query("SET NAMES cp1251;");
  11. print "Вы подключены к базе данных MySQL!<br>";
  12.  
  13. $FIO = $_POST['FIO'];
  14. $NomDoc =  $_POST['NomDoc'];
  15. $Telephon =  $_POST['Telephon'];
  16. $StartPage =  $_POST['StartPage'];
  17. $EndPage =  $_POST['EndPage'];
  18. $Osnovanie =  $_POST['Osnovanie'];
  19.  
  20. $query1="SET NAMES cp866";
  21. $query2="INSERT INTO zayavka_tbl(FIO,NomDoc,Telephon,StartPage,EndPage, Osnovanie)
  22. VALUES ('$FIO','$NomDoc','$Telephon','$StartPage','$EndPage', '$Osnovanie')";
  23. mysql_query($query1) or die(mysql_error());
  24. mysql_query($query2) or die(mysql_error());
  25. echo "Ваши данные добавлены";
  26. ?>
  27.  


с кодировками вчера мучилась

если вставлю еще это не работает, пишет Incorrect string value: '\xC8\xE2\xE0\xED\xEE\xE2...' for column 'FIO' at row 1
14. LIME - 03 Мая, 2013 - 14:40:57 - перейти к сообщению
меняй это
15. Less - 03 Мая, 2013 - 14:42:10 - перейти к сообщению
пишет Incorrect string value: '\xC8\xE2\xE0\xED\xEE\xE2...' for column 'FIO' at row 1

 

Powered by ExBB FM 1.0 RC1