[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Биндер для mysqli
Страницы: 1, 2
twin
Кто-нибудь заморачивался с дебаггингом Prepared statement? Вообще это возможно, синтезировать результирующий текст запроса?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Игорь_Vasinsky
ты не про это говоришь?



$data = array(
'price' => 10.1291231,
'count' => 25,
'text'=>"as'fsfas"
);

echo $stmt->plhdr("SELECT good_name, price, count FROM bla WHERE price BETWEEN (f:price AND f:price * i:count) AND count > i:count AND `text` = s:text" , $data);


_____________
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
waldicom
В doctrine можно smile.gif

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
twin
Цитата (waldicom @ 26.10.2015 - 15:32)
В doctrine можно

Слышал, ага. Но чет нет вдохновения в этом оверинжениринге шарится. Если ниче не придумаю, придется. sad.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Игорь_Vasinsky @ 26.10.2015 - 15:31)
ты не про это говоришь?

Почти. Только для mysqli. Там нет именованных плэйсхолдеров.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Игорь_Vasinsky
twin
а как неименованные?

т.е. - можно при "prepare" указывать в массив указывать типы

'mymethod'=>array(
array(
'name'=>'uid',
'descr'=>'id usera',
'type'=>'int'
)
);


тогда

echo $stmt->plhdr("SELECT * from users where uid =:uid" , $data);

так в CI реализовано (по крайней мере в том, с которым я на работе).

либо как в моём примере

а как неименованные?

_____________
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
twin
Да не особо важно, именованные или нет. Важно другое. Я хочу использовать нативные методы. Дело совсем не сложное, даже работает у меня. Но вот это никак не могу придумать как обойти:
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;
Как она, зараза, видит переменные, которые инициализированы после вызова...

Со ссылками пробовал мутить, не выходит пока. :(

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Игорь_Vasinsky
тут разглядывал? http://php.net/manual/ru/class.mysqli-stmt.php biggrin.gif

_____________
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
twin
Что именно? smile.gif Где там вывод готового запроса?

Для информации, чтобы не зря тема пропала. smile.gif При использовании технологии prepared statement текст запроса и данные отправляются на сервер SQL по раздельности. И в самом драйвере mysqli_stmt вообще не собираются. Потому и нет такого метода, который бы показал результирующий запрос.

Делается это для того, чтобы повысить производительность при повторных запросах, потому что сам текст запроса передается только один раз, а данные потом могут передаваться разные. И придумано это именно для повтора, а не для безопасности, как многие думают сдуру. Мол ничего не нужно экранировать. Не спасает это от ошибок.

А раз все вдруг решили, что это круто, то и лепят теперь везде, для любых запросов. Потому и приходится думать, как эту ситуацию разрулить. sad.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Invis1ble
Цитата (twin @ 26.10.2015 - 19:57)
Как она, зараза, видит переменные, которые инициализированы после вызова...
twin
Цитата (Invis1ble @ 26.10.2015 - 16:25)
ууу, как всё запущено
где?


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Invis1ble
Цитата (twin @ 26.10.2015 - 20:29)
Цитата (Invis1ble @ 26.10.2015 - 16:25)
ууу, как всё запущено
где?
twin
Тогда "что"? biggrin.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Invis1ble
Цитата (twin @ 26.10.2015 - 20:50)
Тогда "что"? biggrin.gif

ну там же ссылки используются, а ты удивляешься "Как она, зараза, видит переменные, которые инициализированы после вызова..."

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Так а мне то как быть. Я понимаю что ссылки, даже написал, что пробовал. Мож чето не то делаю.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

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