Обучение на PHP-разработчика
Обучение PHP разработчика можно поделить на 3 типа:
- Образование в высшем учебном заведении.
- Онлайн-курсы.
- Самообучение.
Каждый из вариантов не стоит воспринимать обособленно, скорее наоборот. Самый гармоничный способ познать профессию с нуля — получать знания от кого-либо и учиться самому. Знания можно получать в ВУЗе или на онлайн-курсах, а подкреплять их и расширять кругозор можно через самостоятельное обучение.
Высшее образование
Профессии исключительно по PHP в российский ВУЗах не существует, но сам язык программирования и другие дисциплины, которые требуются для работы, есть.
Наиболее подходящими специальностями будут:
- Автоматизированные системы обработки информации и управления;
- Вычислительная техника и программное обеспечение;
- Программная инженерия;
- Прикладная информатика;
- Информатика и компьютерные науки;
- Фундаментальная информатика.
Что касается высших учебных заведений, выделим несколько подходящих:
- Санкт-Петербургский университет аэрокосмического приборостроения;
- Московский политехнический университет;
- Московский государственный технический университет им. Н. Э. Баумана;
- МИРЭА;
- Санкт-Петербургский политехнический университет Петра Великого.
Можно подобрать специальность и ВУЗ на сайте Postupi. В нем есть 2 специализации, подходящие под программирование на PHP: web-программист, и разработчик web и мультимедийных приложений.
Обучение онлайн
Онлайн-курсы преподают квалифицированные специалисты, а программа обучения отточена и многократно проверена. После успешного завершения курсов, студенту окажут помощь в устройстве на работу или прохождении стажировки. Всё это будет, если Вы поступите на качественные онлайн-курсы.
2 популярных онлайн-курса по профессии:
1. Профессия “PHP-разработчик” на Skillbox
Годовая образовательная программа, в которой обучают работе с нуля, а в качестве основного фреймворка выбран Symfony.
Ссылка на курс и подробности: https://skillbox.ru/course/profession-php/
2. Курс “Веб-программирование с нуля” от Нетологии
Это общая программа обучения, которая не сконцентрирована на PHP, а делает из студента универсального веб-разработчика. В курсе есть всё, что понадобится для освоения профессии.
Ссылка на курс и подробности: https://netology.ru/programs/web-developer
Самостоятельное обучение
PHP великолепно подходит и для самостоятельного обучения. Целеустремленный, дисциплинированный и трудящийся человек, вполне способен с нуля освоить специальность вплоть до миддл уровня (при наличии практики). Можно не потратить таким образом ни копейки, либо же вложиться в покупку недорого курса, книги или лекции. Это тот редкий случай, когда речь идет о программировании и самообучении, и оба этих термина не являются чем-то несовместимым.
Далее перечислены несколько ссылок на материалы, которые можно использовать для самообразования.
Подборка книг:
- Самоучитель PHP 7. Игорь Симдянов;
- PHP 7 в подлиннике. Дмитрий Котеров;
- Изучаем PHP 7. Дэвид Скляр;
- Объекты, шаблоны и методики программирования. Мэтт Зандстра;
- Чистый код. Создание, анализ и рефакторинг. Мартин Роберт К.
Источники для самостоятельного обучения:
- YouTube-канал Дмитрия Афанасьева, посвященный программированию на PHP и не только;
- Введение в PHP 7 (обзор изменений по сравнению с предыдущей версией);
- Уроки по PHP на русском;
- Обзор PHP для начинающих;
- Изучение PHP с нуля на русскоязычном сайте;
- Курсы с текстом и видео на сайте PHP Start;
- Онлайн-учебник по PHP;
- Современный учебник по Java Script;
- Руководство по использованию контроля версий Git;
- Курс на YouTube по HTML и CSS (на русском языке);
- Курс на YouTube по SQL.
Выбор данных с mysqli
В следующем примере выбираются столбцы ID, имя и фамилия из таблицы мигуестс и отображаются на странице:
Пример (mysqli объектно-ориентированный)
<?php$servername = «localhost»;$username = «username»;$password = «password»;$dbname = «myDB»;// Create connection$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) { die(«Connection failed: » . $conn->connect_error);
} $sql = «SELECT id, firstname, lastname FROM MyGuests»;$result = $conn->query($sql);if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo «id: » . $row. » — Name: » . $row. » » . $row. «<br>»; }} else { echo «0 results»;}
$conn->close();
?>
Строки кода, поясняющие пример выше:
Сначала мы наводим SQL-запрос, который выбирает столбцы ID, имя и фамилия из таблицы мигуестс. Следующая строка кода запускает запрос и помещает результирующие данные в переменную с именем $result.
Затем проверяет, если есть более нуля строк, возвращаемых.
Если возвращено более нуля строк, функция помещает все результаты в ассоциативный массив, через который можно пройти цикл. цикл проходит через результирующий набор и выводит данные из столбцов ID, имя и фамилия.
В следующем примере показано, как в примере выше, в mysqli процедурный способ:
Пример (mysqli процедурный)
<?php$servername = «localhost»;$username = «username»;$password = «password»;$dbname = «myDB»;// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(«Connection failed: » . mysqli_connect_error());}$sql = «SELECT id, firstname, lastname FROM MyGuests»;$result = mysqli_query($conn, $sql);if (mysqli_num_rows($result) > 0) { // output data of each row while($row = mysqli_fetch_assoc($result)) { echo «id: » . $row. » — Name: » . $row. » » . $row. «<br>»; }} else { echo «0 results»;}mysqli_close($conn);
?>
Вы также можете поместить результат в таблицу HTML:
Пример (mysqli объектно-ориентированный)
<?php$servername = «localhost»;$username = «username»;$password = «password»;$dbname = «myDB»;// Create connection$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) { die(«Connection failed: » . $conn->connect_error);
} $sql = «SELECT id, firstname, lastname FROM MyGuests»;$result = $conn->query($sql);if ($result->num_rows > 0) { echo «<table><tr><th>ID</th><th>Name</th></tr>»; // output data of each row while($row = $result->fetch_assoc()) { echo «<tr><td>».$row.»</td><td>».$row.» «.$row.»</td></tr>»; } echo «</table>»;} else { echo «0 results»;}
$conn->close();
?>
Изменение корня сайта
начинается в каталоге /public. Контейнер PHP 8.0 по умолчанию для Службы приложений использует Nginx, который запускается в корневом каталоге приложения. Чтобы изменить корневой каталог сайта, нужно изменить файл конфигурации Nginx в контейнере PHP 8.0 (/etc/nginx/sites-available/default). Для удобства пример репозитория содержит пользовательский файл конфигурации, который называется default. Как отмечалось ранее, не следует заменять этот файл с помощью оболочки SSH, так как после перезапуска приложения такие изменения будут потеряны.
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
|
|
На вкладке «Общие параметры» сделайте следующее:
|
PHP программирование => Профессия программиста PHP.
Программист PHP. Виды деятельности:
создание сайтов, веб-приложений, интерфейсов программных систем;
поддержка интернет-проектов и интернет-ресурсов
Места работы:
IT-компании;
организации разрабатывающие и поддерживающие собственные сайты;
научно-исследовательские центры.
Профессиональные навыки:
Владение на высоком уровне: PHP, JS, jQuery, AJAX;
Навыки обмена данными: MySQL, JSON, XML;
Знание LAMP (Linux, Apache, MySQL);
Умение создавать сайты с нуля, веб-приложения, поддерживать их работу;
Управление базами данных;
Обязательно нужно приобрести навыки чтения чужого кода;
Зниние объектно-ориентированного программирования;
Хорошее знание html-верстки, CSS, представление о CSM.
Зарабатная плата:
В регионах: 30 – 100т.руб.
Москва, Санкт-Питербург: 80 – 160т.руб.
Данные по зарплатам взяты из HeadHunter и Superjob за 2017 год. Требования и плата (имеет значение также опыт работы и проф. навыки) в каждой компании разные, мы лишь их обобщили.
Вывод прост. Стоит изучать PHP программирование и и нахлеб у вас всегда будет. Карьерный рост обеспечен и работа всегда будет
Создание формы (выпадающий список) с кнопкой на сайте
Научившись обращаться к базе данных и делать простые кнопки, пришло время сделать форму на сайте в виде выпадающего списка (dropdown menu) и связанную кнопку, которую пользователь может нажать, чтобы выбрать значение, отправить запрос в БД и получить результаты на экране монитора.
На сайте выпадающее меню создается с помощью форм, которые могут быть типа (method=’POST’) или (method=’GET’).
Чтобы создать выпадающее меню с кнопкой, используется html-тег формы с выбором вариантов через теги:
(можно указать , чтобы при нажатии загружалась эта же программа, либо можно в кавычках указать ссылку на другой файл с кодом, который запустится при нажатии кнопки; важно присвоить — любое имя, на которое затем можно ссылаться в программе);
( — это значение, которое будет записано в переменную при выборе этого пункта, а и — это то, что показывается пользователю на сайте в выпадающем меню);
внутри формы добавляем кнопку через html-тег .
ᅠ
Пример кода для выпадающего меню с кнопкой методом POST
ᅠ
<form action=» method=’POST’>
<select name=»PlayerID»><option value=»7″>Seven</option><option value=»8″>Eight</option> </select>
<input type=’submit’ name=’submitID’ />
</form>
Создав форму с кнопкой, нам теперь надо уметь получать пользовательский выбор. Если пользователь нажмет кнопку выбора варианта, то программа должна понимать это. Давайте научим компьютер общаться с пользователем. Для этого создам условие с проверкой нажатия кнопки — если кнопка была нажата ( в PHP проверяет, есть ли у переменной значение, отличное от null), то сделай запрос к базе данных и напечатай то, что выбрал пользователь.
Этот код очень похож на то, что мы уже писали в начале этого поста, создавая простой запрос к БД.
Получение выбора пользователя после нажатия кнопки на сайте — напечатать одно значение из базы данных (имя седьмого игрока)
ᅠ
if (isset($_POST)){ $number = $_POST; $query = «SELECT Name FROM igroki WHERE N=’$number’»; $result = $connect->query($query); $record = mysqli_fetch_array($result); echo ‘Name of 7th player: ‘ . $record;}
Подключение
- Скачать последний релиз
- Подключить
require_once "DataBase-master/autoload.php"; //Подключаем библиотеку
Подключение к СуБД
Синтаксис конструктора базового класса такой же, как и у PHP-PDO
use DigitalStars\DataBase\DB; $dsn = ''; // Имя источника данных или DSN, содержащее информацию, необходимую для подключения к базе данных. $login = ''; // Логин $pass = ''; // Пароль $options = []; // Массив ключ=>значение специфичных для драйвера настроек подключения. $db = new DB($dsn, $login, $pass, $options);
Пример подключения к MySQL
use DigitalStars\DataBase\DB; $db_type = 'mysql'; // Это может быть mysql, sybase или любой другой, в зависимости от вашей СуБД $db_name = 'test'; // Имя БД $login = 'root'; // Логин $pass = 'pass'; // Пароль $ip = 'localhost'; // Адрес // С портом по умолчанию $db = new DB("$db_type:host=$ip;dbname=$db_name", $login, $pass); // С нестандартным портом $port = 1234; $db = new DB("$db_type:host=$ip;port=$port;dbname=$db_name", $login, $pass); // Подключение с выбором кодировки UTF8 $db = new DB("$db_type:host=$ip;dbname=$db_name;charset=utf-8", $login, $pass); // Или вот так (советуем использовать этот вариант) $db = new DB("$db_type:host=$ip;dbname=$db_name;", $login, $pass, ); // В этом примере, сразу после подключения выполнится SQL запрос "SET NAMES 'utf8'"
Пример подключение к SQLite
use DigitalStars\DataBase\DB; $db_type = 'sqlite'; $db_path = 'path/to/file/test.sqlite'; // Путь к файлу с базой данных // Подключение $db = new DB("$db_type$db_path");
Операции с таблицами
Мы находимся внутри базы данных Посмотрим список таблиц, которые есть в ней. Для этого выполним команду:
mysql> SHOW TABLES;
Результат:
Просмотр списка таблиц
Сейчас сервер говорит нам, что внутри этой базы данных нет ни одной таблицы. Попробуем ее создать. Пусть это будет таблица Здесь мы укажем такие поля: , , , , , , .
Теперь давайте напишем команду для создания такой таблицы:
mysql> CREATE TABLE cars ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30) NOT NULL, description TEXT NOT NULL, type ENUM('passenger', 'truck') NOT NULL, price INT DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ;
Результат:
Создание таблицы и просмотр списка таблиц
Запрос успешно выполнен. Теперь посмотрим, какие колонки есть в этой таблице, выполнив команду:
mysql> SHOW COLUMNS FROM cars;
Результат:
Просмотр списка колонок в таблице
Довольно часто в проектах возникает потребность менять структуру таблицы. Например, нам сообщили новое требование о том, что у автомобиля должно быть такое свойство как цвет, и оно будет принимать значения , , , и . Давайте попробуем добавить поле с помощью команды:
mysql> ALTER TABLE cars ADD COLUMN color ENUM('white','black','red','green','blue') NOT NULL AFTER type;
Результат:
Модификация таблицы
Аналогичным образом можно удалять колонки, используя ключевое слово вместо .
MySQL также позволяет удалять и таблицы с помощью специальной команды, которая представлена ниже.
Примечание: сейчас этого делать не стоит. Таблица нам еще пригодится:
mysql> DROP TABLE cars;
Метод для старых версий PHP
Возникают ситуации, когда надо поработать со старыми версиями либо с достаточно древними проектами. Это значит, что надо иметь некое представление и об этом подходе. Его реализация схожа с процедурным подходом MySQLi и является, по сути, его предыдущей версией.
Также давайте приведем пример добавления новой записи (insert into) в таблицу БД с помощью функции . Она может применяться также и для удаления, изменения и выборки данных посредством запроса SQL. Аргументом функции является строка с запросом. В результате возвращается идентификатор запроса.
<html>
<head>
<title>Добавляем новую запись в нашу таблицу</title>
</head>
<body>
<?php
$db = «sample»;
$link = mysql_pconnect ();
if ( !$link )
die («Подключение к MySQL невозможно!»);
mysql_select_db ( $db ) or die («Нет возможности открыть $db»);
$query = «INSERT INTO books
VALUES (‘111-2222-33-4’, ‘Иванов Иван’,
‘Руководство по PHP’, ‘333’, ‘5’)»;
mysql_query ( $query );
mysql_close ( $link );
?>
</body>
</html>
Функции PHP для работы с базами данных
Что касается необходимых функций, которые можно использовать в процессе взаимодействия с той или иной базой данных, то это лучше почитать документацию по функциям php, которые используются для конкретной базы данных. Но могу сказать, что некоторые функции похожие, например:
MySQL
mysql_connect();
PostgreSQL
pg_connect();
MSSQL
mssql_connect();
Используется уже после подключения к серверу.
MySql
mysql_select_db();
MSSQL
mssql_select_db();
Посыл запроса
Используется после подключения к серверу и выбора базы данных.
Для MySQL
mysql_query();
Для MSSQL
mssql_query();
Для PostgreSQL
pg_query();
Во всех этих функциях передается параметр, т.е. сама строка запроса.
Пример рабочего подключения к базе данных и посыл запроса для MySQL
mysql_connect ("localhost", "root","123");//сервер, пользователь, пароль mysql_select_db("test") or die (mysql_error());//test база данных mysql_query(“select * from table”);//сам запрос
Как Вы видите, функции по работе с различными базами данных похожи, и Вы легко сможете перейти с одной базы на другую или если у Вас одно приложение работает с MySql, а другое с PostgreSQL, то Вы без проблем можете перестраиваться с одной базы на другую.
Теперь я думаю, Вы понимаете огромные возможности php по работе с базами данных, да и не только с базами данных, PHP — это просто отличный язык программирования. Удачи в освоение языка программирования PHP!
Нравится3Не нравится2
mysqli_fetch_all()
— В переменной $res будет содержаться объект mysqli_result , проще говоря, некая
ссылка на эти данные. С помощью функции mysqli_fetch_all() по этой ссылке получим
необходимые данные в массив $date . В качестве параметра эта функция принимает
результирующий набор $res . Для указания типа получаемого массива применяются константы.
Константа MYSQLI_NUM (по умолчанию) позволяет получить нумерованный массив.
Константа MYSQLI_ASSOC позволяет вместо нумерованного получить ассоциативный массив.
Константа MYSQLI_BOTH позволяет получить оба массива.
Чтобы получить нужные нам поля, их просто нужно перечислить, например: «SELECT name, text, date FROM gb» .
Если нужно сортировать в обратном порядке, используется команда: ORDER BY id DESC , где id — поле, по которому будем сортировать.
Чтобы посмотреть, сколько рядов было выбранно, можно воспользоваться функцией
Что такое заполнители?
Заполнители — специальные типизированные маркеры, которые пишутся в строке SQL запроса вместо явных значений (параметров запроса), чем упрощают читаемость кода и защищают от SQL инъекций.
Заполнители поддерживаются в следующих методах:
- exec()
- query()
- prepare()
<?php require 'vendor/autoload.php'; use DigitalStars\DataBase\DB; // Соединение с СУБД SQLite и получение объекта, который включает в себя все методы PHP-PDO и библиотеки $db = new DB("sqlite:./test.sqlite"); // Получение объекта результата PDOStatement $result = $db->query("SELECT * FROM users WHERE name = ?s AND age = ?i", ); // Получаем данные (в виде ассоциативного массива) $data = $result->fetch(); // Не работает запрос? Не проблема - выведите его на печать: echo $db->getQueryString();
Типы заполнителей и типы параметров SQL-запроса
Типы заполнителей и их предназначение описываются ниже. Прежде чем знакомиться с типами заполнителей, необходимо понять как работает механизм библиотеки DataBase.
$db->query("SELECT ?i", );
SQL-запрос после преобразования шаблона:
SELECT 123
Поскольку PHP слаботипизированный язык, то вышеописанное выражение эквивалентно нижеописанному:
$db->query("SELECT ?i", '123');
SQL-запрос после преобразования шаблона:
SELECT 123
Приведение к типу заполнителя
$db->query("SELECT ?i", '123.7');
SQL-запрос после преобразования шаблона:
SELECT 123
В данном примере заполнитель целочисленного типа данных ожидает значение типа , а передается .
Допускаются следующие преобразования:
- К типу (заполнитель ) приводятся:
- Числа с плавающей точкой, представленные как или
- преобразуется в
- и преобразуется в
- К типу (заполнитель ) приводятся:
- Целые числа, представленные как или
- преобразуется в
- и преобразуется в
- К типу (заполнитель ) приводятся:
- преобразуется в
- преобразуется в
- преобразуется в
- преобразуется в
- Тип (заполнитель ) просто вставляет в место заполнителя.
Входные параметры не требуются
Правильная php регистрация и авторизация
Просмотров: 5024
Практически каждому серьёзному сайту требуется авторизация и регистрация пользователя на сайте. Я покажу вам, как сделать это лучше и проще всего.
Приветствую, мои дорогие читатели. Сегодня я представлю вам скрипты для регистрации и авторизации пользователей, которые помогут как можно лучше обезопасить данные ваших юзеров.
PHP Регистрация
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//регистрация пользователя public function register() { //передаём заголовок для верного распознавания кодировки header("Content-Type: text/html; charset=utf-8"); // методом post передаём данные со стороны клиента $name = $this->input->post('name'); $secondname = $this->input->post('secondname'); $surname = $this->input->post('surname'); $userid = $this->input->post('userid'); $pass = $this->input->post('pass'); $email = $this->input->post('email'); // Генерируем соль $salt = '$3h$al$' . substr(str_replace('+', '.', base64_encode(pack('N4', mt_rand(), mt_rand(), mt_rand(), mt_rand()))), 0, 22) . '$'; // Шифруем пароль с применением данной соли $hashed_pass = crypt($pass, $salt); //выполняем запрос к базе данных $query_linked = $this->db->query("INSERT INTO `пользователи` (Логин, Пароль, Соль, Имя, Фамилия, E-Mail, ID_Роль) VALUES ('$userid','$hashed_pass','$salt','$name','$secondname','$email','1')"); //выводим результат TRUE или FALSE echo $query_linked; }
В данном коде я:
- Передаю заголовок
- Получаю данные со стороны клиента
- Генерирую соль (это некая строка, с помощью которой мы кодируем наш пароль. В случае его воровства грабителям придётся ой как постараться, дабы подобрать пароль доступа). Запомните — Никогда не храните пароли в открытом виде!
- Далее с помощью функции crypt шифруем пароль
- Выполняем запрос, который вставит определённую запись в таблицу Пользователи. Вы можете переписать этот запрос под свою структуру БД.
PHP Авторизация
Следующий же код тоже очень прост в использовании. Смотрим и оцениваем.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//авторизация пользователя public function login() { header("Content-Type: text/html; charset=utf-8"); $login = $this->input->post('login'); $pass = $this->input->post('pass'); // Генерируем соль $salt = '$3h$al$' . substr(str_replace('+', '.', base64_encode(pack('N4', mt_rand(), mt_rand(), mt_rand(), mt_rand()))), 0, 22) . '$'; // Шифруем пароль с применением данной соли $hashed_pass = crypt($pass, $salt); $query_check_user = $this->db->query("SELECT пользователи.*,роли.название FROM (пользователи,роли) WHERE пользователи.Логин = " . $this->db->escape($login) . " and пользователи.Пароль = " . $this->db->escape($hashed_pass) . " and пользователи.ID_Роль = роли.ID"); // Если кол-во строк в ответе больше 0 if ($query_check_user->num_rows() > 0) { //представляем результат в виде массива $query_check_user = $query_check_user->result_array(); //проходим по всем элементам массива foreach ($query_check_user as $query_check_user1) { // Создаем массим с данными сессии $authdata = array( 'username' => $login, 'logged_in' => true, 'familiya' => $query_check_user1, 'name' => $query_check_user1, 'name_role' => $query_check_user1 ); // Добавляем данные в сессию $this->session->set_userdata($authdata); $returnText = '1'; } } else{ $returnText = '0'; } echo $returnText; }
В этой функции мы:
- Передаём заголовок (см. выше, если не понимаем)
- Получаем Логин и Пароль от клиентской стороны
- Генерируем соль
- Шифруем введённый пароль с солью
- Выбираем пользователей, которые подходят под полученные данные
- Если кол-во строк в ответе больше 0, то записываем данные в сессию. В противном случае возвращаем 0, т.е. Неудачу (Fail, FALSE и прочие названия).
Данный способ даёт неплохую защиту данных. Практически нереально будет подобрать пароль + даже при воровстве данных информацию не раскодировать, потому что функция crypt кодирует в одну сторону! Раскодировать невозможно!)))) Так что радуемся, репостим, оставляем отзывы и прочее.
Надеюсь, что статья была вам полезна. Жду ваших комментариев! (P.S. Те, кто найдёт самый большой минус в моём коде — получит 100 баллов на счёт! Поехали!)
PDO, получение (чтение) и вывод данных из БД
В PDO получить данные можно двумя способами (методами):
- query
- execute
Разберем оба.
Чтение и вывод данных с помощью query
Сразу к примеру:
<?php $q = 'кодер.укр'; try { //соединение с БД $dbcon = new PDO('mysql:host=localhost;dbname=dbName', $dbUsername, $dbPassword); $dbcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //получаем данные $data = $dbcon->query('SELECT * FROM tableName WHERE fieldName = ' . $dbcon->quote($string)); //выводим результат foreach($data as $rows) { print_r($rows); } } catch(PDOException $e) { echo 'Ошибка: ' . $e->getMessage(); }
— метод аналогичный , для экранирования данных.
Еще один пример:
<?php $q = 'кодер.укр'; try { //соединение с БД $dbcon = new PDO('mysql:host=localhost;dbname=dbName', $dbUsername, $dbPassword); $dbcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //получаем данные $data = $dbcon->query('SELECT * FROM tableName'); //выводим результат foreach ($dbcon->query($sql) as $row) { echo " ID: ".$row . "<br />"; echo " Name: ".$row . "<br />"; echo " Other field: ".$row . "<br />"; } } catch(PDOException $e) { echo 'Ошибка: ' . $e->getMessage(); }
Чтение и вывод данных с помощью execute
Пример:
<?php $q = 'кодер.укр'; try { //соединение с БД $dbcon = new PDO('mysql:host=localhost;dbname=dbName', $dbUsername, $dbPassword); $data = $dbcon->prepare('SELECT * FROM tableName WHERE fieldName = :q'); $data->execute(array('q' => $q)); $result = $data->fetchAll(); if (count($result)) { //выводим результат foreach($result as $row) { print_r($row); } } else { echo "Нет записей для вывода"; } } catch(PDOException $e) { echo 'Ошибка: ' . $e->getMessage(); }
Здесь мы работаем с методом . Это сводит к минимуму возможность SQL инъекции. Так как не попадет непосредственно в запрос, а в запросе используем заполнитель .
Так же выводить данные можно следующим образом:
while($row = $data->fetch(PDO::FETCH_OBJ)) { print_r($row); }
— создает анонимный объект со свойствами, которые соответствуют именам столбцов запроса.
— вернет массив, индексированный именами столбцов запроса.
— возвращает массив, индексированный именами столбцов запроса, а также их номерами (начиная с 0). Используется по умолчанию.
— возвращает массив, индексированный номерами столбцов (начиная с 0).