Хранимые процедуры представляют контракт программного обеспечения, который инкапсулирует меры, принятые против базы данных. Код в процедурах, и даже схема самой базы данных может быть изменена, не влияя на скомпилированный, развернутый код, именно так вводы и выводы процедуры остаются тем же.
Путем встраивания запросов в приложение, Вы сильно связываете себя к своей модели данных.
По той же причине, это - также не хорошая практика для простого создания хранимых процедур, которые являются просто запросами CRUD против каждой таблицы в базе данных, так как это - все еще плотное соединение. Процедуры должны вместо этого быть большими, крупномодульными операциями.
С точки зрения безопасности, это - хорошая практика, чтобы запретить db_datareader и db_datawriter из Вашего приложения и только предоставить доступ к хранимым процедурам.
Use regular expressions:
preg_match("[^,]+(,[^,]+){2}", $input)
This matches:
stack,over,flow
I'm,not,sure
But not:
,
asdf
two,words
four,or,more,words
empty,word,
если вы строго хотите сопоставить одно или несколько целых слов, а не фразы, разделенные запятыми, попробуйте:
preg_match("^(?:\w+,)*\w+$", $input)