Когда использовать подготовленные выражения в PDO? - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ admin@visavi.net (admin) admin@visavi.net (admin) Tue, 22 Apr 2025 18:35:55 +0300 <pre class="prettyprint"> class My { protected $_db = null; function __construct() { if($this-&gt;_db == null) $this-&gt;_db = DBConnect&#58;&#58;getInstance(); // обьявить синглтон c PDO коннектом который выше должен быть подключен } // Все тра ля ля //$this-&gt;..db-&gt; // как объект хранящий PDO объект } </pre> https://visavi.net/topics/39024/647120 Когда использовать подготовленные выражения в PDO? Станислав Крунич Tue, 24 Sep 2013 00:57:59 +0400 Сообщения https://visavi.net/topics/39024/647120 17. <strong>Stanislav-WEB</strong>, жду примера, везде пишут про вызов через статический метод https://visavi.net/topics/39024/647104 Когда использовать подготовленные выражения в PDO? lekt Mon, 23 Sep 2013 23:15:29 +0400 Сообщения https://visavi.net/topics/39024/647104 17. <strong>Stanislav-WEB</strong>, во-во, за ето и я имел ввиду, а то global-global уже как быдлокодинг. Хотя многие еще его используют. https://visavi.net/topics/39024/647101 Когда использовать подготовленные выражения в PDO? Алексей Mon, 23 Sep 2013 22:41:29 +0400 Сообщения https://visavi.net/topics/39024/647101 Он как раз для твоей задачи. Просто чтобы там нибыло. Вызывай его в конкрукторе , например protected $_db;. . . Затем конструктор . В нем this-&gt;_db = insance; и используй в классе. Во всех наследниках будет доступен. . . Домой приду скину пример https://visavi.net/topics/39024/647100 Когда использовать подготовленные выражения в PDO? Станислав Крунич Mon, 23 Sep 2013 22:31:20 +0400 Сообщения https://visavi.net/topics/39024/647100 15. <strong>Stanislav-WEB</strong>, Какие еще? Почитал про синглтон, и как то у людей двоякое мнение о нем https://visavi.net/topics/39024/647097 Когда использовать подготовленные выражения в PDO? lekt Mon, 23 Sep 2013 21:59:38 +0400 Сообщения https://visavi.net/topics/39024/647097 Синглтон делать и подключать через конструктор, чтобы не использовать global $db. . . Вообще много способов https://visavi.net/topics/39024/647076 Когда использовать подготовленные выражения в PDO? Станислав Крунич Mon, 23 Sep 2013 17:52:16 +0400 Сообщения https://visavi.net/topics/39024/647076 13. <strong>rastoman</strong>, дело не в том, что условие не срабатывало. <br> Дело в том, что если сделать так :<br> echo $query-&gt;rowCount();<br> print_r($query-&gt;fetch(PDO::FETCH_ASSOC)) ;<br> <br> Выводилась только единица (это $query-&gt;rowCount()), а массив якобы пустой. <br> <br> А если так:<br> print_r($query-&gt;fetch(PDO::FETCH_ASSOC)) ;<br> echo $query-&gt;rowCount();<br> То выводилось содержимое массива и единица. <br> Вот в чем загадка, лично для меня. Может кто-то знает почему так https://visavi.net/topics/39024/647039 Когда использовать подготовленные выражения в PDO? lekt Mon, 23 Sep 2013 02:06:36 +0400 Сообщения https://visavi.net/topics/39024/647039 а вообще можно так<br> <pre class="prettyprint"> if($query-&gt;rowCount() &gt;0) { $x = $query-&gt;fetch(PDO&#58;&#58;FETCH_ASSOC); include_once &#039;&#039; . $x&#91;&#039;type&#039;] . &#039;_server.php&#039;; </pre> https://visavi.net/topics/39024/647033 Когда использовать подготовленные выражения в PDO? Александр Mon, 23 Sep 2013 01:03:40 +0400 Сообщения https://visavi.net/topics/39024/647033 10. <strong>rastoman</strong>, вся таблица вызывается так как в последующем будет использоваться в файле который инклудится<br> <br> <em><span style="font-size:x-small">Добавлено через 01:13 сек.</span></em><br> <blockquote class="blockquote"><strong>ByKuznec</strong> (22 Сентября 2013 / 18:24)<br> global $db; - пора от этого избавлятся уже)</blockquote> Как мне от этого избавится ? если эту строку удалить, то ничего не выйдет<br> <br> <em><span style="font-size:x-small">Добавлено через 09:17 сек.</span></em><br> <blockquote class="blockquote"><strong>rastoman</strong> (22 Сентября 2013 / 18:01)<br> fetchColumn() или fetchColumn(0).<br> !== 0 это не правильно в данной ситуации. Нужно !=<br> ]</blockquote> как раз нужно !== с != не так работало, но всеравно спасибо, натолкнул на правильное решение<br> вот так работает:<br> <pre class="prettyprint"> $id = text&#58;&#58;num($_GET&#91;&#039;id&#039;]); try{ $query = $db-&gt;query(&quot;SELECT * FROM `Server` WHERE `id`=&#039;&quot;.$id.&quot;&#039;&quot;); $x = $query-&gt;fetch(PDO&#58;&#58;FETCH_ASSOC); if ($query-&gt;fetchColumn() !== 0){ include_once &#039;&#039; . $x&#91;&#039;type&#039;] . &#039;_server.php&#039;; }else { tank_msg(&#039;error&#039;, &#039;Сервер недоступен&#039;); } }catch (PDOException $e){ msg(&#039;error&#039;, $e-&gt;getMessage()); } </pre> то есть сначала $x = $query-&gt;fetch(PDO::FETCH_ASSOC);, а потом $query-&gt;fetchColumn() .<br> если поменять местами, то не работает почему то https://visavi.net/topics/39024/647029 Когда использовать подготовленные выражения в PDO? lekt Sun, 22 Sep 2013 23:43:23 +0400 Сообщения https://visavi.net/topics/39024/647029 global $db; - пора от этого избавлятся уже) https://visavi.net/topics/39024/647028 Когда использовать подготовленные выражения в PDO? Алексей Sun, 22 Sep 2013 23:24:29 +0400 Сообщения https://visavi.net/topics/39024/647028 fetchColumn() или fetchColumn(0).<br> !== 0 это не правильно в данной ситуации. Нужно !=<br> <br> <em><span style="font-size:x-small">Добавлено через 05:01 сек.</span></em><br> так же если тебе нужен только type, зачем вызывать всю таблицу?<br> <pre class="prettyprint"> $query = $db-&gt;query(&quot;SELECT `type` FROM `Server` WHERE `id`=&#039;&quot;.$id.&quot;&#039;&quot;); if ($type=$query-&gt;fetchColumn(0) &amp;&amp; file_exists($type . &#039;_server.php&#039;)){ include_once $type . &#039;_server.php&#039;; </pre> https://visavi.net/topics/39024/647027 Когда использовать подготовленные выражения в PDO? Александр Sun, 22 Sep 2013 23:01:42 +0400 Сообщения https://visavi.net/topics/39024/647027 Появилась проблемка, не имеет отношения непосредственно к вопросу темы, но задам тут ибо тоже связано с pdo<br> есть такой код:<br> <pre class="prettyprint"> $id = text&#58;&#58;num($_GET&#91;&#039;id&#039;]); try{ $query = $db-&gt;query(&quot;SELECT * FROM `Server` WHERE `id`=&#039;&quot;.$id.&quot;&#039;&quot;); if ($query-&gt;fetchColumn() !== 0){ $x = $query-&gt;fetch(PDO&#58;&#58;FETCH_ASSOC); include_once &#039;&#039; . $x&#91;&#039;type&#039;] . &#039;_server.php&#039;; }else { msg(&#039;error&#039;, &#039;Сервер недоступен&#039;); } }catch (PDOException $e){ msg(&#039;error&#039;, $e-&gt;getMessage()); } </pre> и вот почему-то массив $x пустой<br> <br> а если например написать так:<br> <pre class="prettyprint"> $id = text&#58;&#58;num($_GET&#91;&#039;id&#039;]); try{ $query = $db-&gt;query(&quot;SELECT * FROM `Server` WHERE `id`=&#039;&quot;.$id.&quot;&#039;&quot;); $x = $query-&gt;fetch(PDO&#58;&#58;FETCH_ASSOC); include_once &#039;&#039; . $x&#91;&#039;type&#039;] . &#039;_server.php&#039;; }catch (PDOException $e){ msg(&#039;error&#039;, $e-&gt;getMessage()); } </pre> <br> все норм.<br> <br> даже если написать так:<br> <pre class="prettyprint"> $id = text&#58;&#58;num($_GET&#91;&#039;id&#039;]); try{ $query = $db-&gt;query(&quot;SELECT * FROM `Server` WHERE `id`=&#039;&quot;.$id.&quot;&#039;&quot;); $count = $query-&gt;fetchColumn; $x = $query-&gt;fetch(PDO&#58;&#58;FETCH_ASSOC); include_once &#039;&#039; . $x&#91;&#039;type&#039;] . &#039;_server.php&#039;; }catch (PDOException $e){ msg(&#039;error&#039;, $e-&gt;getMessage()); } </pre> <br> массив тоже пуст.<br> <br> никаких ошибок при этом нет, кроме <br> Warning: include_once(_server.php) [function.include-once]: failed to open stream: No such file or directory<br> из-за пустого массива.<br> Кто-то знает в чем дело? https://visavi.net/topics/39024/647026 Когда использовать подготовленные выражения в PDO? lekt Sun, 22 Sep 2013 22:48:31 +0400 Сообщения https://visavi.net/topics/39024/647026 Применяй тогда фильтрацию там где она нужна - на входе. Это тоже можно ускорить  SET `time`=&#039;.time().&#039; . Не стоит использовать функции в запросе, встроенный sql кэш не работает с NOW(). php rand() итп . . . Все то что динамически меняет свое поведение. Лучше будет вынести в обычную переменную https://visavi.net/topics/39024/647015 Когда использовать подготовленные выражения в PDO? Станислав Крунич Sun, 22 Sep 2013 20:03:38 +0400 Сообщения https://visavi.net/topics/39024/647015 <blockquote class="blockquote"><strong>lekt</strong> (22 Сентября 2013 / 13:42)<br> 4. <strong>rastoman</strong>, то есть в данном методе можно спокойно обойтись и без подготовленных выражений ?</blockquote> Абсолютно согласен.<br> Если запрос используется однократно и параметром является число (INT), то подготовленные выражения не нужны. https://visavi.net/topics/39024/647012 Когда использовать подготовленные выражения в PDO? MarkizDeSad Sun, 22 Sep 2013 18:03:21 +0400 Сообщения https://visavi.net/topics/39024/647012 4. <strong>rastoman</strong>, то есть в данном методе можно спокойно обойтись и без подготовленных выражений ? https://visavi.net/topics/39024/647011 Когда использовать подготовленные выражения в PDO? lekt Sun, 22 Sep 2013 17:42:39 +0400 Сообщения https://visavi.net/topics/39024/647011