|
|
|
| Здравствуйте, вот решил освоить PDO, сразу возникла куча вопросов, которые я и решил спросить у вас :).
Говорят PDO в плане безопасности решает многие проблемы?
В плане скорости очень хорош?
Какие ещё преимущества или недостатки вы можете отметить?
Например я очень огорчился отсутствию num_rows, пришлось решать написанием маленькой функции, или можно решить как-то иначе?
function countNumRows($db, $pdoPatern)
{
$dbCount = $db->prepare($pdoPatern);
$dbCount->execute();
$numRows = $dbCount->fetch();
return $numRows[0];
}
if(countNumRows($db, $pdoPatern) > 0)
{
работаем;
}
|
В плане безопасности мне кажется я не совсем правильно понимаю, если что поправьте.
Раньше у меня было что-то типа такого.
if(isset($_GET['id']) and $_GET['id'] == addslashes($_GET['id']))
{
работаем;
}
else
{
посылаем лесом;
}
|
А как это решается в PDO, нужно ли экранировать передаваемые переменные?
Да и вообще всё интересует по факту, если отвечаете старайтесь использовать примеры.
Также просьба накидать полезных статей, мануалов по поводу. | |
|
|
|
|
|
|
|
для: maloi_m3
(23.08.2011 в 15:23)
| |
if(isset($_GET['id']) and $_GET['id'] == addslashes($_GET['id']))
|
отвал башки и вынос мозга (уже минут 10 прошло а меня все тилипает)
освойте сначала РНР :) | |
|
|
|
|
|
|
|
для: Valick
(23.08.2011 в 15:34)
| | Что конкретно вас не устраивает в этой строке? Если отвечаете, мотивируйте, приведите пример, распишите на пальцах, что не так. | |
|
|
|
|
|
|
|
для: maloi_m3
(23.08.2011 в 15:57)
| | Все нормально в этой строке. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2011 в 16:20)
| | ?
$_GET['id'] == addslashes($_GET['id'])
|
когда это успело стать нормальным?
может я уже потихоньку схожу с ума на старости лет?
для меня лично это все равно что пиво открывать зубочисткой
вместо того чтобы повернуть крышку "по стрелочке" | |
|
|
|
|
|
|
|
для: Valick
(23.08.2011 в 16:23)
| | Что вы в этом ненормального видите? Словами объясните, а не эмоциями. Что вам не нравится, вариант исключения кавычек, and, отсутствие круглых скобок? Я ничего криминального не вижу. Ну не совсем обычный стиль, но он рабочий и имеет право на существование и не лишен даже некоторой элегантности, хотя я тоже не очень люблю хитрые конструкции, манипулирующие приоритетом операций - не в 60-е живем, можно не экономить... Тем более, что в PHP больно-то не сэкономишь - он сам по себе слишком неэффективен, а вот ошибок насобачить С-уловками можно от нечего делать. Однако люфт заложен в самом языке, если заложен - он будет использоваться. Был бы язык более ортогонален еще можно было что-то возражать, а так просто используются вполне штатные возможности языка. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2011 в 16:36)
| | ну если id - это действительно идентификатор и он число, то для обработки чисел есть intval() | |
|
|
|
|
|
|
|
для: Valick
(23.08.2011 в 16:43)
| | Во-первых не все идентификаторы числовые, бывают строковые идентификаторы (очень часто только так и бывает, особенно, когда вы работаете с несколькими базами данных у которых суррогатные ключи отличаются или вообще нет возможности их получить). Во-вторых не всегда приведение к числу, именно та операция, которая требуется, иногда такое число нужно отбросить, иногда нужно, зафиксировать IP-адрес и имя пользователя, который химичит с идентификаторами и подставляет туда кавычки. Если поковыряться можно еще пару-тройку случаев подобрать, когда использование intval() не подходит или не удобно. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2011 в 16:50)
| | иногда нужно, зафиксировать IP-адрес и имя пользователя, который химичит с идентификаторами
тут да согласен, тогда сам пойду "осваивать РНР" :) | |
|
|
|
|
|
|
|
для: maloi_m3
(23.08.2011 в 15:23)
| | >Говорят PDO в плане безопасности решает многие проблемы?
Кое что решает, но проблема безопасности такова, что лучше очень точно представлять источники угрозы и контрмеры, не надеясь на библиотеки.
>В плане скорости очень хорош?
Каждый лишний слой замедляет приложение, если вы вводите код или библиотеку, вы за это чем-то расплачиваетесь. Очень редко бывает, что вы не расплачиваетесь ничем. Правда сильно беспокоиться по этому поводу не следует - объем вычислений на стороне базы данных перекрывает любые библиотеки.
>Какие ещё преимущества или недостатки вы можете отметить?
Из достоинств: код становится более переносимым, особенно, когда вам нужно разрабатывать приложение сразу для нескольких типов баз данных. Из недостатков - еще одно расширение и еще один компонент в приложении. Web-разработка и так изобилует ими, и в последнее время складывается впечатление о неуправляемом расширении технологий и языков программировании в Web. А тут вводится еще один слой, причем на голом месте, без жесткой необходимости. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2011 в 15:45)
| | Спасибо, учтём. | |
|
|
|