Portál AbcLinuxu, 12. května 2025 18:54

Dotaz: Mysql - výmaz dat z tabulky

18.12.2010 19:53 mary23
Mysql - výmaz dat z tabulky
Přečteno: 369×
Odpovědět | Admin

Prosím o radu snažím se nahradit v tabulce znaky \r\n. Jiné znaky mi to nahradí krom těchto dvou.

$editaddress2="Update $tbl_name SET a_answer=TRIM(REPLACE(REPLACE(a_answer, '\r', ''), '\n', ''))";

mysql_query($editaddress2) or die("Could not edit address");

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Bedňa avatar 18.12.2010 21:40 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Mysql - výmaz dat z tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
$editaddress2='Update $tbl_name SET a_answer=TRIM(REPLACE(REPLACE(a_answer, "\r", ""), "\n", ""))';
KERNEL ULTRAS video channel >>>
18.12.2010 22:02 mary23
Rozbalit Rozbalit vše Re: Mysql - výmaz dat z tabulky

tohle také nefunguje jde jen toto

$editaddress2='Update $tbl_name SET a_answer=TRIM(REPLACE(REPLACE(a_answer, "r", ""), "n", ""))';

ale pak mi tam zůstává ještě \\ a toho se nemůžu zbavit

18.12.2010 23:27 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Mysql - výmaz dat z tabulky
Jo tak, vy chcete nahradit opravdu dva znaku '\' a 'n' ne \n jako konec řádku.
znak \ je escapovací znak a pokud ho chcete zaměnit musíte ho zdvojit

REPLACE(REPLACE(a_answer, '\\r', ''), '\\n', '')

Váš kód odstaňoval znak CR nebo-li \r nebo-li 0x0D a znak LF nebo-li \n nebo-li 0x0A.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
18.12.2010 23:30 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Mysql - výmaz dat z tabulky
MySQL pro řetězce používá znak ' ne znak ".
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.12.2010 11:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Mysql - výmaz dat z tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Už jsem psalé ale možná to nebylo výstižné co se řešení týče, tak to fčul napravím.
V řetězci v PHP uvzavřeném mezi " " je znak '\' escapovací, v MySQL toto platí také, v MySQL řetězce jsou mezi znaky ' '. Tzn. že při přímých zápisech v PHP musíte tento znak zdvojit a mezi " " zčtveřit.
$sql  = "UPDATE `$tbl_name` SET `a_answer`=TRIM(REPLACE(REPLACE(`a_answer`, '";
$sql .= mysql_escape_string('\r');
$sql .= "', ''), '";
$sql .= mysql_escape_string('\n');
$sql .= "', ''))";
mysql_query($sql) or die("Could not edit address");
pozor i v php by s použitím " muselo být
$sql.= mysql_escape_string("\\r");
nebo přímo zapsané
$editaddress2="UPDATE `$tbl_name` SET `a_answer`=TRIM(REPLACE(REPLACE(`a_answer`, '\\\\r', ''), '\\\\n', ''))";
jak jste to měl vy.
PS: existuje ještě fce mysql_real_escape_string
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.