Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '} where tag_slug= 'mysql'' at line 1 in system/classes/databaseconnection.php line 271
Archive - Пара слов о программировании

Posts tagged with mysql

04.Распространенные ошибки PHP разработчиков при работе с MySQL

База данных это основная часть большинства веб-приложений. А если вы используете PHP, то скорее всего вы так же используете и MySQL - часть стандартного LAMP.

Начать писать на PHP довольно просто, многие начинающие разработчики могут написать работающий код через несколько часов после начала изучения. Однако, создание более сложного приложения требует как времени, так и опыта. Дальше приведены десять самых распространенных ошибок, которые я видел, при работе с MySQL (некоторые могут быть в любом языке/базе данных).

читать дальше

31.Чуть более 20 хороших советов по MySQL (часть 2)

оригинал

начало здесь

11. Используйте NOT NULL, если это возможно

Если есть особые причины использовать NULL — используйте его. Но перед этим спросите себя — есть ли разница между пустой строкой и NULL (для INT — 0 или NULL). Если таких причин нет, используйте NOT NULL.
NULL занимает больше места и, к тому же, усложняет сравнения с таким полем. Избегайте его, если это возможно. Тем не менее, бывают веские причины использовать NULL, это не всегда плохо.
Из документации MySQL:
«Столбцы NULL занимают больше места в записи, из-за необходимости отмечать, что это NULL значение. Для таблиц MyISAM, каждое поле с NULL занимает 1 дополнительный бит, который округляется до ближайшего байта».

читать дальше

12.Счетчик строк в MySQL

Оригинал

Тестовая таблица

Таблица, использованная для примера в этой статье, называется "fruit" и определенна следующим образом:

  1. CREATE TABLE `fruit` (
  2. `fruit_id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(50) NOT NULL,
  4. `somevalue` int(11) NOT NULL DEFAULT 0,
  5. PRIMARY KEY (`fruit_id`)
  6. ) ENGINE=MyISAM

И данные:

  1. INSERT INTO `fruit` (`name`)
  2. VALUES ('Banana'), ('Orange'), ('Cherry'), ('Apple');

Запрос "SELECT * FROM fruit" вернет следующий результат:

fruit_idnamesomevalue
1Banana0
2Orange0
3Cherry0
4Apple0

SELECT со счетчиком

Чтобы использовать счетчик, надо объявить переменную:

SELECT @i:=0;

увеличивать ее можно следующим образом:

SELECT *, @i:=@i+1 AS i FROM fruit ORDER BY name;

Результат:

fruit_id name somevalue i
4 Apple 0 1
1 Banana 0 2
3 Cherry 0 3
2 Orange 0 4

Заметьте, что для каждой новой строки - @i больше чем для предыдущей.

UPDATE с счетчиком

Следующий пример обновит поле "somevalue" значением счетчика. Обратите внимание, что @i необходимо обнулить после предыдущего примера, иначе следующее его значение будет 5.

SELECT @i:=0;

Как и SELECT запрос выше, обновляем значания отсортированные по имени.

UPDATE fruit SET somevalue = @i:=@i+1 ORDER BY name;

И результат "SELECT * FROM fruit":

fruit_id name somevalue
1 Banana 2
2 Orange 4
3 Cherry 3
4 Apple 1

или "SELECT * FROM fruit ORDER BY name"

fruit_id name somevalue
4 Apple 1
1 Banana 2
3 Cherry 3
2 Orange 4

10.Чуть более 20 хороших советов по MySQL (часть 1)

оригинал


Работа с базой данных зачастую самое слабое место в производительности многих web приложений. И об этом должны заботиться не только администраторы баз данных. Программисты должны выбирать правильную структуру таблиц, писать оптимизированные запросы и хороший код. Далее перечислены методы оптимизации работы с MySQL для программистов.

читать дальше

 1