mysql_escape_string for Oracle ?

Ganer

Новичок
mysql_escape_string for Oracle ?

Кто как эскейпит строки для оракла ? mysql_escape_string не подхдит :(

Ganer.
 

trent

Developer
эскейпить не надо... просто все вставлять через
[m]OCIBindByName[/m] и брать через
[m]OCIDefineByName[/m]
 

Ganer

Новичок
сори чо-то не заметил. а как даты биндить через to_date ?

и нет у кого другого метода ? что мне бинд не нравится ...
 

trent

Developer
PHP:
$sql = "select * from table where dateVar=to_date(:dateBegin, 'DD.MM.YYYY HH24:MI:SS')";
затем биндишь переменную :dateBegin...
 

Ganer

Новичок
а это спасет от SQL injection ?

"select * from table where login=:login";
$login=" xxx' or 1=1 " ;
 

trent

Developer
а как ты думаешь?
Когда биндишь php отдает Oracle'у уже заэскейпенные значения
 

Ganer

Новичок
да я вот собрался переписывать задачу и думаю как покрасивей проверку переменных сделать ну и на OCI за одно перейду.
 

aloner

Guest
Бинды спасают на 100% от sql-injection, если не используешь их значения в dynamic sql.
 

aloner

Guest
Самый простой пример:

Код:
PROCEDURE do_something (p_sql VARCHAR2) IS
BEGIN
	EXECUTE IMMEDIATE p_sq;
END do_something;
При вызове процедуры через бинд есть риск sql-injection.
 
Сверху