В чем разница между цитатами «и»? Что относительно `? Есть ли ошибка в использовании разных кавычек и« ниже?
$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 ) )
Переменная-замена не выполняется при использовании одинарных кавычек ('), что означает, что значения в вашем первом примере будут буквально равными $ 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
.