Ulozeni obrazku do MSSQL

Vaclav Ovsik Vaclav.Ovsik na i.cz
Čtvrtek Duben 19 17:08:36 CEST 2001


On Thu, Apr 19, 2001 at 04:23:38PM +0100, karel.duchacek na gatc.com wrote:
> Jak tak sleduju prispevky ohledne zadavani obrazku do Postgress databaze,
> napadlo me, zda nekdo neresil tento problem s MSSQL.
> Pokousim se ulozit obrazek z Apache + PHP+ FreeTDS do MSSQL, ale objevuje se mi
> chyba:
> Warning: Sybase error: Unclosed quotation mark before the character string
> '˙Ř˙ŕ'. (severity 15)  a podobne
> Tato chyba se objevuje, kdyz zapisuju slozitejsi retezec  (jednoduchy je v
> poradku) sql dotazem s promennou '$data' pres  INSERT, tak i WRITETEXT do
> datoveho pole typu image-text
> Pouzil jsem upravu AddSlashess i QuoteMeta a stale nic.
> 
> Neresil nekdo tento problem??
>                               Dik Karel

Rekl bych ze AddSlashess a QuoteMeta nemusi byt to prave.
Zalezi co pouzivate za interface do DB (jake vyzaduje quotovani apod.).
Ja kdyz jsem chtel neco cpat do DB, tak jsem si udelal vlastni
quotovaci funkci v Perlu, kde jsem vsechny znaky [\x00-\x1F\\'"]
nahradil escape sekvenci \xNN (hexa kod) a zpatky.
V Perlu jednoduche (mozna ne nejrychlejsi), do PHP si upravte sam
(doufam, ze PHP umi regularni vyrazy).

sub quote_str($)
{
  $_[0]=~s/[\x00-\x1F"'\\]/sprintf("\\x%02X",ord $&)/ge;
  $_[0];
}

sub unquote_str($)
{
  $_[0]=~s/\\x([\dA-Fa-f]{2})/chr hex $1/ge;
  $_[0];
}

-- 
	Vaclav Ovsik		email: Vaclav.Ovsik na i.cz
	ICZ a.s.		phone: +420 19 7488511
				fax:   +420 19 7488506



Další informace o konferenci Linux