Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник PHP.docx
Скачиваний:
8
Добавлен:
16.08.2019
Размер:
1.01 Mб
Скачать

Наиболее распространённые ошибки начинающих

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

Неверный тип данных

Важно, чтобы данные и тип данных столбца соответствовали друг другу. Каждый столбец может содержать данные определённого типа. Следующий скриншот показывает типы данных таблицы "people" из нашего примера.

Выдаётся ошибка, если вы, например, попытаетесь вставить текст или число в поле данных. Следовательно, устанавливайте тип данных как можно точнее.

Ниже перечислены наиболее употребительные типы данных:

Значение

Тип Данных

Размер

CHR

Текст или комбинация текста и чисел. Может также использоваться для числе, не используемых при расчётах (напр., номера телефонов).

До 255 символов - либо длина, определяемая в "Length"

TEXT

Большие блоки текста или комбинация текста и чисел.

До 65,535 символов

INT

Числовые данные для математических вычислений.

4 байта

DATE

Даты в формате ГГГ-ММ-ДД

3 байта

TIME

Время в формате чч:мм:сс

3 байта

DATETIME

Дата и время в формате ГГГ-ММ-ДД чч:мм:сс

8 байт

SQL-операторы с кавычками или обратными слэшами

Если вы попытаетесь вставить текст, содержащий символы одинарной кавычки ('), двойной кавычки (") или обратного слэша (\), запись не будет вставлена в БД. Решением будет подстановка обратных слэшей перед символами, которые должны мнемонизироваться при вставке в запросы БД.

Это делается функцией  addslashes:

<?php

$strText = "Is your name O'Reilly?";

$strText = addslashes($strText);

?>

Все двойные ('), одинарные (") кавычки м обратные слэши (\) получат дополнительный обратный слэш перед символом. Это делается только при вставке данных в БД, эти дополнительные \ не вставляются. Обратите внимание, что PHP запускает по умолчанию  addslashes для всех данных $_GET, $_POST и $_COOKIE. Так что не используйте  addslashes в строках, которые уже мнемонизированы.

В следующем уроке вы научитесь запрашивать данные из БД. Но сначала попытайтесь вставить несколько персон в вашу БД (как в примере с Gus Goose).

Урок 20: Получение данных из бд

Теперь настало время запросить данные из нашей БД для наших PHP-страниц.

Это один из наиболее важных уроков данного учебника. Когда вы прочтёте и разберёте этот урок, вы поймёте, почему вэб-решения на основе БД настолько мощны, и ваше представление о вэб-разработке значительно расширится.

SQL-запросы

Для получения данных из БД вы используете запросы. Примером запроса может быть: "получить данные из таблицы 'people', отсортированные по алфавиту" или "получить имена из таблицы 'people'".

Напоминаем, что язык Structured Query Language (SQL) используется для общения с БД. Посмотрим на простой пример:

Получить все данные из таблицы 'people'

В SQL мы запишем:

SELECT * FROM people

Синтаксис говорит сам за себя. Просто читайте и смотрите, как используются SQL-операторы в следующих примерах.