странное поведение в кавычках - PullRequest
0 голосов
/ 09 января 2012

Я изучаю SQL, используя Wampserver, Crimson editor и Новые учебные пособия по Бостону . Ничего не получалось, пока я не сменил кавычки:

С командами SQL обычные «одинарные кавычки» не работают, но weird slanty quotes делает.

При использовании форм и $_GET["name"]; будут работать только двойные кавычки.

Есть идеи, что здесь происходит? Я использую британскую клавиатуру, но также и видео-репетитор, и он использует $_GET['name']; с одинарными кавычками.

РЕДАКТИРОВАТЬ: пример кода:

if(isset($_GET["sortBy"])&&!empty($_GET["sortBy"]) ) // only works with "full" quotes
{   $sortBy         = $_GET["sortBy"]; 
    echo "sortBy works <br><br>";
}
$topTenResult = "SELECT  `name`,`intuition`,`bravery`,`romance` FROM  `scores` ORDER BY $sortBy DESC"; 
// does not work with default keyboard single quotes

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Это признак наличия вложенных кавычек.

.... " ... $_GET["name"] ...

Вышесказанное идет не так, потому что $ _GET находится внутри строки в двойных кавычках. Так что ищите ложные двойные кавычки, которые превращают ваш код в ошибки.

Может быть, поможет подсветка синтаксиса (как в IDE NetBeans, с хорошей поддержкой PHP).

2 голосов
/ 09 января 2012

В SQL одинарные кавычки отмечают строки.

В MySQL обратные кавычки отмечают «идентификаторы с разделителями». Это имена, которые чувствительны к регистру или конфликтуют с ключевыми словами. Обратные кавычки уникальны для MySQL; MS SQL Server использует квадратные скобки для той же работы. Оба являются нестандартными расширениями.

В стандартном SQL двойные кавычки используются для обозначения идентификаторов с разделителями. Некоторые СУБД рассматривают двойные кавычки как строки разметки, если они не переведены в стандартный режим; некоторые автоматически воспринимают их как идентификаторы с разделителями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...