PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (98): В начало « ... 82 83 84 85 [86] 87 88 89 90 ... » В конец

> Найдено сообщений: 1465
teddy Отправлено: 11 Июня, 2013 - 12:55:09 • Тема: MySQLi при ООП • Форум: Вопросы новичков

Ответов: 49
Просмотров: 1706
Доброго дня всем ) Уже 3ий день мучают несколько вопросов, в гугле лекарства нашел, но чую должно быть более оптимальное решение...

Решил перейти с MySQL на использование MySQLi и сразу же столкнулся с проблемой при написании своего первого класса с использованием MySQLi. Вот пример:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class baseCMS {
  3.  
  4.         public $mysqli;
  5.        
  6.                 function __construct () {
  7.                         $this->mysqli = new mysqli("localhost", "root", "", "CMS");
  8.                         $this->mysqli->query("SET NAMES 'cp1251'");
  9.                         echo "Соединение с БД открыто <br />";
  10.                
  11.                 }
  12.        
  13.         function addArticle($title, $content, $date, $author) {
  14.                
  15.                 $this->mysqli->query("INSERT INTO articles(title, content, date, author) VALUES('$title','$content','$date','$author')")or die($this->mysqli->error);
  16.                                                                                                                        
  17.         }
  18.                 function __destruct () {
  19.                        
  20.                         $this->mysqli->close();
  21.                         echo "Соединение с БД закрыто";
  22.                
  23.                 }
  24. }
  25. $obj = new baseCMS();
  26. ?>

А что если объектов будет больше? Каждый раз будет открываться и закрываться соединение... А нужно что бы было одно для всех, как например в MySQL создали 1 файл и инклюдим его повсюду где надо... Видел примеры в гугле с использованием сингл тона, но как то "грязно" выглядит на мой взгляд.

Получается нужно создать отдельный класс для соединения с БД? Если да, то какой от него толк? Выходит что опять же лишняя писанина... Проще в каждом методе просто открыть и закрыть соединение... Не могу разобраться, помогите пожалуйста Растерялся

И ещё заметил что начало глючить $mysqli->real_escape_string. При выводе с echo спецсимволы экранируется, а вот в БД опять же уходит без экранирования... Читал что проблема из за кодировки, пробовал с разными, результат один и тот же...
teddy Отправлено: 11 Июня, 2013 - 12:07:10 • Тема: Вопрос по безопасности и обработки переменных • Форум: Вопросы новичков

Ответов: 23
Просмотров: 713
LIME
Да я уже привык, почти ) сам рад когда делают замечания, иначе нормально писать не научусь...
teddy Отправлено: 11 Июня, 2013 - 12:02:55 • Тема: Вопрос по безопасности и обработки переменных • Форум: Вопросы новичков

Ответов: 23
Просмотров: 713
LIME
Интересная ситуация... Спасибо )) Вроде пришел помочь, а сам отхватил помощь ))
teddy Отправлено: 11 Июня, 2013 - 11:58:11 • Тема: Вопрос по безопасности и обработки переменных • Форум: Вопросы новичков

Ответов: 23
Просмотров: 713
LIME пишет:
и из твоей регулярки выпадают символы Ёё

Спасибо, не знал ) А почему так то? указано ведь от а до я, а е и ё находятся между ними... может я что то пропустил..
teddy Отправлено: 11 Июня, 2013 - 11:44:38 • Тема: Вопрос по безопасности и обработки переменных • Форум: Вопросы новичков

Ответов: 23
Просмотров: 713
netclan
trim() удаляет пробелы с начала и с конца строки, типа пробел1пробел2 ИМЯ пробел3. Результат будет "ИМЯ", без пробелов. Если хотите уничножить все кроме букв, то используйте подобное выражение

PHP:
скопировать код в буфер обмена
  1. if(!preg_match("/^[a-zA-Zа-яА-Я]+$/", $name)){echo "Имя может содержать только Русские или Английские буквы<br>";}


Ну или не эхо, можно поместить ошибку в какую нибудь переменную и проверять ее на isset...

П.С: в квадратных скобках у preg_match в данном случае находятся только разрешенные символы для ввода. Соответственно можете добавлять свои по мере необходимости
teddy Отправлено: 10 Июня, 2013 - 00:07:24 • Тема: помогите !!новичку • Форум: Вопросы новичков

Ответов: 7
Просмотров: 273
rexstorz
Тогда укажите в основном вам файле путь к тому файлу, где лежит капча(что бы появилась картинка) и сверяйте в первом файле то, что ввел пользователь с тем, что лежит в сессии, где генерируется код капчи.

Как то так...
teddy Отправлено: 09 Июня, 2013 - 23:02:28 • Тема: помогите !!новичку • Форум: Вопросы новичков

Ответов: 7
Просмотров: 273
rexstorz
А в папочке /fonts есть файл(шрифт) verdana.ttf ?
teddy Отправлено: 09 Июня, 2013 - 00:02:55 • Тема: Вопрос по объединению таблиц БД • Форум: Вопросы новичков

Ответов: 4
Просмотров: 164
Мелкий
Да, ссылка работает ) Это у меня комп тупанул, сори ) И спасибо ещё раз Подмигивание
(Добавление)
Мелкий пишет:
Если коротко - left join берёт все строки из первой таблицы и по условию объединяет со второй таблицей.

Кстати, получается что это дело можно заменить при помощи WHERE если использовать первый вариант?
teddy Отправлено: 08 Июня, 2013 - 23:42:25 • Тема: Вопрос по объединению таблиц БД • Форум: Вопросы новичков

Ответов: 4
Просмотров: 164
Спасибо за ссылку и подсказку )
teddy Отправлено: 08 Июня, 2013 - 23:23:07 • Тема: Вопрос по объединению таблиц БД • Форум: Вопросы новичков

Ответов: 4
Просмотров: 164
Доброй ночи ) искал с помощью поиска по форуму, но не нашел именно то, что мне нужно... Ранее не занимался объединением таблиц БД при помощи JOIN, интересует несколько вопросов, если кто знает, подскажите, пожалуйста )

Вариант 1:
PHP:
скопировать код в буфер обмена
  1. $mysqli->query("SELECT item, price FROM items, prices");


Это одно и тоже что и если использовать JOIN? Если да, то чем первый отличается от JOIN-а? Ещё видел LEFT JOIN, RIGHT JOIN и т.д - в каких случаях и как срабатывает запрос? ) ещё видел ключевое слово ON... Т.е с JOIN не работал вообще... Не знаю точно как составлять такие запросы, последовательность написания операторов, полей и т.д

Если можно подскажите, буду благодарен )
teddy Отправлено: 07 Июня, 2013 - 10:15:38 • Тема: подключение к базе • Форум: Вопросы новичков

Ответов: 2
Просмотров: 142
Зачем вам условие? напишите лучше после каждой строчки кода(но ДО точки с запятой)

Тоесть получается так, соединяемся с БД, а если соединение не удалось, то "смерть"(перевод слова die) и выводим стандартную ошибку mysql. Тоесть вам уже напишет например, unknown database и вы уже поймете в чем дело. А если ошибок нет никаких, то значит все прошло успешно.

условие и var_dump здесь неуместено, думаю.. проще и удобнее как я написал выше.
teddy Отправлено: 07 Июня, 2013 - 01:01:21 • Тема: mysql VS mysqli • Форум: Вопросы новичков

Ответов: 21
Просмотров: 759
DelphinPRO
Точно, прочитал уже в вики ) пару месяцев назад столкнулся и забыл... не вникал особо, просто на тот момент изучал Soap(поэтому спутал с XML) и походу столкнулся с шаблонами проектирования, в итоге запутался и забил на то и на другое, временно, естественно ) Точнее с Soap разобрался, но вот создавать wsdl Документы не очень...
teddy Отправлено: 07 Июня, 2013 - 00:51:34 • Тема: mysql VS mysqli • Форум: Вопросы новичков

Ответов: 21
Просмотров: 759
caballero
Меня наоборот устраивает одно соединение, но только в примерах видел что постоянно открывают и закрывают... Поэтому пришел на форум за уточнением )

DelphinPRO
синглтон - я думал это связано с XML либо с фреймворками.. я где то сталкивался с ним, но точно где - забыл ) единственное что запомнил - только название )) Но точно помню что встречал его либо в XML либо в фреймворках..

Ну раз более опытные советуют забить на устаревшее, тогда пойду читать функции mysqli из мануала )
teddy Отправлено: 06 Июня, 2013 - 23:32:16 • Тема: mysql VS mysqli • Форум: Вопросы новичков

Ответов: 21
Просмотров: 759
Efex
Как вариант, но конструкторы и диструкторы не используются в процедурном подходе...
teddy Отправлено: 06 Июня, 2013 - 23:23:22 • Тема: mysql VS mysqli • Форум: Вопросы новичков

Ответов: 21
Просмотров: 759
EuGen
Благодарю за исчерпывающий ответ )

esterio
Странно, если у нас все основано на классах либо функциях, то вроде как нужно ведь в теле функции/метода постоянно открывать и закрывать соединение? Видел несколько примеров по использованию mysqli и там все было именно так...

Страниц (98): В начало « ... 82 83 84 85 [86] 87 88 89 90 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB