Когда использовать подготовленные выражения в PDO? - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - 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->_db == null) $this->_db = DBConnect::getInstance(); // обьявить синглтон c PDO коннектом который выше должен быть подключен
}
// Все тра ля ля
//$this->..db-> // как объект хранящий PDO объект
}
</pre>
https://visavi.net/topics/39024/647120
Когда использовать подготовленные выражения в PDO? Станислав КруничTue, 24 Sep 2013 00:57:59 +0400Сообщенияhttps://visavi.net/topics/39024/64712017. <strong>Stanislav-WEB</strong>, жду примера, везде пишут про вызов через статический метод
https://visavi.net/topics/39024/647104
Когда использовать подготовленные выражения в PDO? lektMon, 23 Sep 2013 23:15:29 +0400Сообщенияhttps://visavi.net/topics/39024/64710417. <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->_db = insance; и используй в классе. Во всех наследниках будет доступен. . . Домой приду скину пример
https://visavi.net/topics/39024/647100
Когда использовать подготовленные выражения в PDO? Станислав КруничMon, 23 Sep 2013 22:31:20 +0400Сообщенияhttps://visavi.net/topics/39024/64710015. <strong>Stanislav-WEB</strong>, Какие еще? Почитал про синглтон, и как то у людей двоякое мнение о нем
https://visavi.net/topics/39024/647097
Когда использовать подготовленные выражения в PDO? lektMon, 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/64707613. <strong>rastoman</strong>, дело не в том, что условие не срабатывало. <br>
Дело в том, что если сделать так :<br>
echo $query->rowCount();<br>
print_r($query->fetch(PDO::FETCH_ASSOC)) ;<br>
<br>
Выводилась только единица (это $query->rowCount()), а массив якобы пустой. <br>
<br>
А если так:<br>
print_r($query->fetch(PDO::FETCH_ASSOC)) ;<br>
echo $query->rowCount();<br>
То выводилось содержимое массива и единица. <br>
Вот в чем загадка, лично для меня. Может кто-то знает почему так
https://visavi.net/topics/39024/647039
Когда использовать подготовленные выражения в PDO? lektMon, 23 Sep 2013 02:06:36 +0400Сообщенияhttps://visavi.net/topics/39024/647039а вообще можно так<br>
<pre class="prettyprint">
if($query->rowCount() >0)
{
$x = $query->fetch(PDO::FETCH_ASSOC);
include_once '' . $x['type'] . '_server.php';
</pre>
https://visavi.net/topics/39024/647033
Когда использовать подготовленные выражения в PDO? АлександрMon, 23 Sep 2013 01:03:40 +0400Сообщенияhttps://visavi.net/topics/39024/64703310. <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::num($_GET['id']);
try{
$query = $db->query("SELECT * FROM `Server` WHERE `id`='".$id."'");
$x = $query->fetch(PDO::FETCH_ASSOC);
if ($query->fetchColumn() !== 0){
include_once '' . $x['type'] . '_server.php';
}else {
tank_msg('error', 'Сервер недоступен');
}
}catch (PDOException $e){
msg('error', $e->getMessage());
}
</pre>
то есть сначала $x = $query->fetch(PDO::FETCH_ASSOC);, а потом $query->fetchColumn() .<br>
если поменять местами, то не работает почему то
https://visavi.net/topics/39024/647029
Когда использовать подготовленные выражения в PDO? lektSun, 22 Sep 2013 23:43:23 +0400Сообщенияhttps://visavi.net/topics/39024/647029global $db; - пора от этого избавлятся уже)
https://visavi.net/topics/39024/647028
Когда использовать подготовленные выражения в PDO? АлексейSun, 22 Sep 2013 23:24:29 +0400Сообщенияhttps://visavi.net/topics/39024/647028fetchColumn() или 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->query("SELECT `type` FROM `Server` WHERE `id`='".$id."'");
if ($type=$query->fetchColumn(0) && file_exists($type . '_server.php')){
include_once $type . '_server.php';
</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::num($_GET['id']);
try{
$query = $db->query("SELECT * FROM `Server` WHERE `id`='".$id."'");
if ($query->fetchColumn() !== 0){
$x = $query->fetch(PDO::FETCH_ASSOC);
include_once '' . $x['type'] . '_server.php';
}else {
msg('error', 'Сервер недоступен');
}
}catch (PDOException $e){
msg('error', $e->getMessage());
}
</pre>
и вот почему-то массив $x пустой<br>
<br>
а если например написать так:<br>
<pre class="prettyprint">
$id = text::num($_GET['id']);
try{
$query = $db->query("SELECT * FROM `Server` WHERE `id`='".$id."'");
$x = $query->fetch(PDO::FETCH_ASSOC);
include_once '' . $x['type'] . '_server.php';
}catch (PDOException $e){
msg('error', $e->getMessage());
}
</pre>
<br>
все норм.<br>
<br>
даже если написать так:<br>
<pre class="prettyprint">
$id = text::num($_GET['id']);
try{
$query = $db->query("SELECT * FROM `Server` WHERE `id`='".$id."'");
$count = $query->fetchColumn;
$x = $query->fetch(PDO::FETCH_ASSOC);
include_once '' . $x['type'] . '_server.php';
}catch (PDOException $e){
msg('error', $e->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? lektSun, 22 Sep 2013 22:48:31 +0400Сообщенияhttps://visavi.net/topics/39024/647026Применяй тогда фильтрацию там где она нужна - на входе. Это тоже можно ускорить SET `time`='.time().' . Не стоит использовать функции в запросе, встроенный 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? MarkizDeSadSun, 22 Sep 2013 18:03:21 +0400Сообщенияhttps://visavi.net/topics/39024/6470124. <strong>rastoman</strong>, то есть в данном методе можно спокойно обойтись и без подготовленных выражений ?
https://visavi.net/topics/39024/647011
Когда использовать подготовленные выражения в PDO? lektSun, 22 Sep 2013 17:42:39 +0400Сообщенияhttps://visavi.net/topics/39024/647011