Проблем с Interbase, php и апострофи

3 отговора 228 прегледа
#1

Проблем с Interbase, php и апострофи

Здравейте!

Имам проблеми с формулирането на query за InterBase, съдържащи текст с апостроф ( например "Val d'Aosta"). Ето го и query-to (примерно):

SELECT * FROM STRUMENTI WHERE SEZIONE containing "Contrabbasso" and
SOTTO_SEZIONE containing "Val d'Aosta"

php кода е следния:

$sezione="Contrabbasso";
$sotto_sezione="Val d'Aosta";
$sotto_sezione=eregi_replace("\\\'","&rsquo",$sotto_sezione);
$query="SELECT * FROM STRUMENTI WHERE SEZIONE containing '$sezione' and
SOTTO_SEZIONE containing '$sotto_sezione'";
$sth = ibase_query($dbh, $query) or die(ibase_errmsg());
$row = ibase_fetch_object ($sth);

Проблемът е че дори и да ми приеме query-то, разпознава апострофа като друг символ (друг вид апостроф) и не дава никакъв резултат от търсенето...

Опитах какво ли не, copy/paste на правилния апостроф, със и без slash отпред - последваха съобщения за грешки от незатворени кавички в InterBase.
Опитах се да променя и записа в базата данни, като замених апострофа с този отговарящ на &rsquo. В последния случай, query-то дава резултати, когато е подадено директно на базата данни, но не се изпълнява от php скрипта!!!

Сигурна съм че решението е елементарно, но с моя опит и знания по въпроса (не особено големи) не успявам да стигна до него, а няма как да избегна апострофите - текстовете в базата данни са на италиански и вътре бъка от тях.

Надявам се някой от вас да може да ми помогне


Благодаря предварително!

Отговор
в отговор на Koki #2

Re: Проблем с Interbase, php и апострофи

пробвай да заместип апострофа с два такива
апострофа се ползва служебно за начало и край на стринг
т.е "Val d''Aosta" <- това там са два апострофа, не кавички

Отговор
в отговор на Koki #3

Re: Проблем с Interbase, php и апострофи

Или вместо:
$query="SELECT * FROM STRUMENTI WHERE SEZIONE containing '$sezione' and SOTTO_SEZIONE containing '$sotto_sezione'"
пробвай с:
$query="SELECT * FROM STRUMENTI WHERE SEZIONE containing \"$sezione\" and SOTTO_SEZIONE containing \"$sotto_sezione\""

където \" е наклонена черта и кавички (не са 2 апострофа)

Отговор
в отговор на - #4

Re: Проблем с Interbase, php и апострофи

Tova proraboti :)
Mersi mnogo!!!

Отговор