PHP: разные кавычки?

В чем разница между цитатами «и»? Что относительно `? Есть ли ошибка в использовании разных кавычек и« ниже?

$result = pg_query_params($dbconn, 'INSERT INTO users (username, email, passhash_md5) VALUES ($1, $2, $3)', array($username, $email, $passhash_md5 ) $result = pg_query_params( $dbconn, "SELECT user_id FROM users WHERE email = $1", array( $email ) ) 

Solutions Collecting From Web of "PHP: разные кавычки?"

Переменная-замена не выполняется при использовании одинарных кавычек ('), что означает, что значения в вашем первом примере будут буквально равными $ 1 $ 2 и т. Д., Если бы они были обычной строкой и не передавались функции, которая их заменяет.

Если вам не нужна переменная замена, лучше использовать одиночные кавычки по соображениям производительности.

“ вызывает shell-engine и вызывает его как действительную команду и возвращает результат, как и в perl. Следовательно, это имеет совершенно другой смысл.

Примеры:

 $ email = 'user@example.org';
 $ sql1 = "SELECT user_id FROM users WHERE email = $ email";
 $ sql2 = 'SELECT user_id FROM users WHERE email = $ email';

$ sql1 будет SELECT user_id FROM users WHERE email = user@example.org

$ sql2 будет SELECT user_id FROM users WHERE email = $ email

Разница между строками с одним и двумя кавычками хорошо объясняется в руководстве PHP о Strings .

В вашем примере, поскольку вы используете переменные замещения, такие как $1 которые означают что-то конкретное для pg_query_params и что вы не хотите, чтобы PHP интерпретировался как имена переменных, вы должны использовать одинарные кавычки для строк SQL-запросов.

В принципе, " позволяет встраивать такие переменные:

 <?php $beer = 'Heineken'; echo "$beer's taste is great"; // works; "'" is an invalid character for variable names echo "He drank some $beers"; // won't work; 's' is a valid character for variable names but the variable is "$beer" echo "He drank some ${beer}s"; // works echo "He drank some {$beer}s"; // works ?> 

(Из руководства по php )

Использование ' означает, что проверка переменных не выполняется.

 <?php echo '$beer'; ?> 

Выпустил бы $beer .