PDA

Просмотр полной версии : [Вопрос] MySQL ошибка



Espo
05.04.2018, 18:20
Здравствуйте, помогите пожалуйста, сделал систему регистрации, в павно все скомпелировалось, а вот когда захожу на сервер ничего не выдает, а в логах пишет вот это..

[18:51:56] [plugins/mysql] error #1064 while executing query "SELECT 'id' FROM 'users' WHERE 'name' = 'Newt_Nelson'": 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 ''users' WHERE 'name' = 'Newt_Nelson'' at line 1 (C:\Users\Руслан\Desktop\server\gamemodes\Future.pwn:86)

Elrmrnt-Kritik
05.04.2018, 19:49
Название столбцов и таблиц нужно заключать не в апострофы, а гравис. То есть так должен выглядеть запрос:


SELECT `id` FROM `users` WHERE `name` = 'Newt_Nelson'

DeimoS
06.04.2018, 10:51
Название столбцов и таблиц нужно заключать не в апострофы, а гравис. То есть так должен выглядеть запрос:


SELECT `id` FROM `users` WHERE `name` = 'Newt_Nelson'


Это, скорее, обратный апостроф, чем гравис :) Они лишь схожи, вроде как, но не являются одним и тем же. Ну не суть.

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

SELECT id FROM users WHERE name = 'Newt_Nelson'
И да, автор. Если что, обратный апостроф ставится нажатием на "ё" с включённой английской раскладкой :)

Espo
06.04.2018, 14:40
Это, скорее, обратный апостроф, чем гравис :) Они лишь схожи, вроде как, но не являются одним и тем же. Ну не суть.

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

SELECT id FROM users WHERE name = 'Newt_Nelson'
И да, автор. Если что, обратный апостроф ставится нажатием на "ё" с включённой английской раскладкой :)

Спасибо, помогло