[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Синтаксис INSERT
Страницы: 1, 2
paul85
Доброго времени суток!

Сегодня столкнулся с любопытным синтаксисом

INSERT INTO clients (first_name, last_name) VALUES ('".$first_name."', '".$last_name."')


Что означает это ' " .$variable. " ' ? Для чего использовать такую запись?

Когда работал с MySQL API всегда использовал просто одинарные кавычки если переменная строка. И вообще без всяких кавычек если число.
Valick
Цитата
Что означает это ' " .$variable. " ' ? Для чего использовать такую запись?

что именно смущает в этой записи? конкатенация?
кстати для полной картины должно быть так
"INSERT INTO clients (first_name, last_name) VALUES ('".$first_name."', '".$last_name."')"


_____________
Стимулятор ~yoomoney - 41001303250491
sign63
а разве так не пойдет???

"INSERT INTO clients (first_name, last_name) VALUES ('$first_name', '$last_name')";


_____________
user posted image
Игорь_Vasinsky
Ещё несколько примеров

"INSERT INTO `clients` (`first_name`, `last_name`) VALUES ('".$first_name."', '".$last_name."')"


"INSERT INTO clients (first_name, last_name) VALUES ('{$first_name}', '{$last_name.}')"


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sign63
Игорь а как лучше посоветуешь?) Просто я делаю как написал, может подскажешь что лучше и безопасней?)

_____________
user posted image
Игорь_Vasinsky
я привык так
"INSERT INTO `clients` (`first_name`, `last_name`) VALUES ('".$first_name."', '".$last_name."')"


учитывая что переменные безопасны

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sign63
их int -ом обработать перед этим?

_____________
user posted image
Shuriken
Если число, то int-ом, если строка, то mysql_real_escape_string
Игорь_Vasinsky
совершенно верно.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sign63
Типо от инъекций всяких)

_____________
user posted image
Shuriken
типа да)
DedMorozzz
только если инт, то и кавычки не нужны, при добавлении переменной.
Кавычки для текста

Текст так
"INSERT INTO `clients` (`first_name`, `last_name`) VALUES ('".$first_name."', '".$last_name."')"

Числа так
"INSERT INTO `clients` (`user_id`, `user_profession_id`) VALUES (".$user_id.", ".$user_profession_id.")"


_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
sign63
Ок, возьму за основу буду пересиливать себя писать так cool.gif раз так все пишут wink.gif

_____________
user posted image
paul85
Так зачем все-таки использовать одни кавычки, потом другие кавычки, потом какие-то точки (в посте выше говорилось про конкатенацаю - чего с чем!?).

Я когда использовал API MySQL всегда делал так:

INSERT INTO clients (`name`,`age`) VALUES ('$name', $age)


И больше ничего. И все работало. Это был внутренний проект к тому же ода из моих самых первых поделок на PHP. Потом пришлось использовать {} с ассоциативными массивами.

Кто-нибудь может доходчиво объяснить?
inpost
paul85
Тебе лучше погуглить конкатенацию строк.
А чтобы ещё лучше это понять, сделай следующее:
$var = 'inp';
$varost = 'text';
Выведи слово inpost используя переменную var без конкатенации и всё поймешь.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.