PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (2): [1] 2 »
Найдено сообщений: 21
Inferial
Отправлено: 18 Октября, 2015 - 18:39:11 • Тема: Иероглифы в БД • Форум: Вопросы новичков
Ответов: 9 Просмотров: 387
andrewkard пишет: чем смотрите, данные видимо сохраняются как раз в UTF-8, но отображаются в WIN-1251?
В самой Mysql, скрин прилагаю.
(Добавление)
В проблеме разобрался, правильный запрос:
Inferial
Отправлено: 18 Октября, 2015 - 18:19:05 • Тема: Иероглифы в БД • Форум: Вопросы новичков
Ответов: 9 Просмотров: 387
Мелкий пишет: Потому вопрос: как вы проверяете, что было записано? Может, кодировка неверно указана при попытке прочитать из базы.
Вижу что запись сохраняется в БД, именно там она сохраняется в иероглифах.
Но при этом выводится из базы как должно быть! (на русском)
Inferial
Отправлено: 18 Октября, 2015 - 18:08:17 • Тема: Иероглифы в БД • Форум: Вопросы новичков
Ответов: 9 Просмотров: 387
Мелкий пишет: Inferial пишет: array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
Идея хоть и не самая правильная, но нужная. Вопрос - почему висит тупо в воздухе? В таком виде настройка ни на что не повлияет.
В DSN указывается charset. У вас указан?
Вопрос в целом - с какого перепуга у вас явно модель сама напрямую открывает и закрывает соединение на отдельно-взятую операцию?
Не совсем понял Ваш вопрос, но по поводу DSN:
PHP:
скопировать код в буфер обмена
<?PHP
define ( "DB_DSN" , "mysql:host=localhost;dbname=name;charset=utf8" ) ; define ( "DB_USERNAME" , "name" ) ; define ( "DB_PASSWORD" , "pass" ) ; define ( "CLASS_PATH" , "classes" ) ; define ( "TEMPLATE_PATH" , "templates" ) ; define ( "HOMEPAGE_NUM_ARTICLES" , 5
) ; define ( "ADMIN_USERNAME" , "login" ) ; define ( "ADMIN_PASSWORD" , "pass" ) ; require ( CLASS_PATH . "/Article.php" ) ;
require ( CLASS_PATH . "/Category.php" ) ;
function handleException( $exception )
{
echo "Sorry, a problem occurred. Please try later." ;
}
set_exception_handler( 'handleException' ) ;
?>
Inferial
Отправлено: 18 Октября, 2015 - 17:55:51 • Тема: Иероглифы в БД • Форум: Вопросы новичков
Ответов: 9 Просмотров: 387
andrewkard пишет: Inferial
Проверьте кодировку БД, таблицы и полей.
Везде utf8_general_ci стоит, это не первая таблица в БД, у меня все в UTF-8.
А запись именно в эту иероглифами идёт. (Новая Тема)
Inferial
Отправлено: 18 Октября, 2015 - 17:48:23 • Тема: Иероглифы в БД • Форум: Вопросы новичков
Ответов: 9 Просмотров: 387
Добрый день всем.
Наткнулся на проблему, которую не в получается решить.
Есть запрос в БД:
PHP:
скопировать код в буфер обмена
public function insert( ) {
if ( ! is_null ( $this -> id ) ) trigger_error ( "Article::insert(): Attempt to insert an Article object that already has its ID property set (to $this->id )." , E_USER_ERROR ) ;
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD ) ;
$sql = "INSERT INTO articles ( publicationDate, categoryId, title, summary, content ) VALUES ( FROM_UNIXTIME(:publicationDate), :categoryId, :title, :summary, :content )" ;
array ( PDO
:: MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" ) ; $st = $conn -> prepare ( $sql ) ;
$st -> bindValue ( ":publicationDate" , $this -> publicationDate , PDO:: PARAM_INT ) ;
$st -> bindValue ( ":categoryId" , $this -> categoryId , PDO:: PARAM_INT ) ;
$st -> bindValue ( ":title" , $this -> title , PDO:: PARAM_STR ) ;
$st -> bindValue ( ":summary" , $this -> summary , PDO:: PARAM_STR ) ;
$st -> bindValue ( ":content" , $this -> content , PDO:: PARAM_STR ) ;
$st -> execute ( ) ;
$this -> id = $conn -> lastInsertId ( ) ;
$conn = null ;
}
Проблема: в БД отображается иероглифами, но выводит как положено.
Прошу помощи знатоков!
SQL:
CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `articles` (
`id` smallint( 5) UNSIGNED NOT NULL AUTO_INCREMENT ,
`publicationDate` date NOT NULL ,
`categoryId` smallint( 5) UNSIGNED NOT NULL ,
`title` varchar( 255) NOT NULL ,
`summary` text NOT NULL ,
`content` mediumtext NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= InnoDB DEFAULT CHARSET= utf8 AUTO_INCREMENT = 15
Все файлы в кодировке UTF-8.
Inferial
Отправлено: 12 Октября, 2015 - 20:51:30 • Тема: Как удалить пробел в ссыслке, которая отправляется на email? • Форум: Вопросы новичков
Ответов: 6 Просмотров: 304
Строитель , благодарю за помощь, помогло. Причем пробовал данный вариант, только по другом. Еще раз спасибо!
(Добавление)
Строитель пишет: Inferial как вариант - обработать переменную
$name перед ссылкой
Только теперь возникла другая проблема:
Данная ссылка на активацию теперь не действует, так как в ФИО по факту должны быть пробелы.
Возникаю другой вопрос, как сделать, чтобы пробел не прерывал ссылку?
Inferial
Отправлено: 12 Октября, 2015 - 20:25:22 • Тема: Как удалить пробел в ссыслке, которая отправляется на email? • Форум: Вопросы новичков
Ответов: 6 Просмотров: 304
Всем доброго времени суток!
Возник вопрос. Как удалить пробел в ссыслке, которая отправляется на email?
Сам код:
PHP:
скопировать код в буфер обмена
$result3 = mysql_query ( "SELECT id FROM users WHERE name='$name '" , $db ) ; $activation = md5 ( $myrow3 [ 'id' ] ) . md5 ( $name ) ; $subject = "Подтверждение регистрации" ;
$message = "Здравствуйте! Спасибо за регистрацию на blabla.ru\n Ваше ФИО: " . $name . "\n
Перейдите по ссылке, чтобы активировать ваш аккаунт:\n http://blabla.ru/activation.php?name=" . $name . "&code=" . $activation . "\n С уважением,\n Администрация blabla.ru" ;
$from = "blabla@mail.ru" ;
$headers = "From: $from \r \n Reply-to:$from \r \n Content-type:text/plane;charset=utf-8\r \n " ;
mail ( $email , $subject , $message , $headers , "Content-type:text/plane; Charset=utf8\r \n " ) ; echo "Вам на E-mail выслано письмо с cсылкой, для подтверждения регистрации. Внимание! Ссылка действительна 1 час.<a href='index.php'>Главная страница</a>" ;
Сам $name, это соответственно ФИО которая в базе хранится с пробелами, а когда отправляется письмо(ссылка) пользователю с этим $name, то возникают пробелы в ссылке, что является неудобством.
Прошу помочь решить проблему.
Inferial
Отправлено: 05 Октября, 2015 - 19:25:32 • Тема: Требуется помощь по БД • Форум: Работа с СУБД
Ответов: 7 Просмотров: 1207
fanatic пишет: Цитата: а мне нужно что бы отображалось и "name" (имя) и "surname
ну так доставайте из базы name и surname и выводите. в чем проблема?
Не получается.. подскажите хотя бы, через concan это делать?
Inferial
Отправлено: 05 Октября, 2015 - 13:56:39 • Тема: Требуется помощь по БД • Форум: Работа с СУБД
Ответов: 7 Просмотров: 1207
Tyoma5891 пишет: Inferial пишет: преровнять к name+surname?
тут можно поподробнее, что это значит?
Суть такая:
Пользователи обмениваются сообщениями, на данный момент под получателем и автором у меня идет только значение "name" (имя), а мне нужно что бы отображалось и "name" (имя) и "surname" (фамилия).. таблица в базе есть.
Inferial
Отправлено: 05 Октября, 2015 - 12:54:12 • Тема: Требуется помощь по БД • Форум: Работа с СУБД
Ответов: 7 Просмотров: 1207
broshurkaplus пишет: гуглим 'конкатенация строк в mysql'
Почитал, попробовал.
Остановился на данном запросе:
Но в итоге вообще ни чего не выводится.
Прошу помощи специалистов!
Inferial
Отправлено: 17 Сентября, 2015 - 21:51:43 • Тема: Требуется помощь по БД • Форум: Работа с СУБД
Ответов: 7 Просмотров: 1207
Доброго времени суток.
Морочит меня задачка:
Имеем две таблицы:
1. Users:
id, name, surname
2. messages
id, author; poluchatel.
Вопрос: как значение poluchatel преровнять к name+surname?
Inferial
Отправлено: 17 Сентября, 2015 - 13:25:02 • Тема: Данные не отправляются в БД • Форум: Работа с СУБД
Ответов: 6 Просмотров: 1035
andrewkard пишет: Inferial
Нашли?
Inferial пишет: `autor ` varchar(15) NOT NULL DEFAULT '',
Inferial пишет: INSERT INTO messages (author
Невнимательности ...
Я примного благодарен !!
Inferial
Отправлено: 17 Сентября, 2015 - 12:48:54 • Тема: Данные не отправляются в БД • Форум: Работа с СУБД
Ответов: 6 Просмотров: 1035
Sail
Вариант для решения проблемы не плохой, теперь я вижу ошибку "INSERT INTO messages (author, poluchatel, date, text) VALUES ('Дмитрий','Ольга','2015-09-17','уфвфцвфцу')(1054)Unknown column 'author' in 'field list' ".. и в БД так же не проходит.
Страниц (2): [1] 2 »
Powered by ExBB FM 1.0 RC1. InvisionExBB