[ pakito @ 25.11.2018. 11:01 ] @
Povremeno imam potrebu da ispravim neku opetovanu (obično pravopisnu) grešku u nekom SQL polju.
Koristim naredbu tipa:

Code:
$unos="UPDATE `$tabela` SET `$polje` = replace(`$polje`,'$nadji', '$zamenisa')";


Bio bi mi od koristi pokazivač broja izmena, ali ne vidim da ovaj SQL-ov "replace" ima $count, kao, na primer, str_replace(find,replace,string,count) ili preg_replace.
Pitanje: el stvarno nema, ili ima ali mi sluhisti ne možemo da ga nađemo bez pomoći gurua sa ES-a?
[ nkrgovic @ 25.11.2018. 14:44 ] @
Nisam siguran sta je potrebno, ali ako je pitanje "kako da vidim koliko redova je zamenjeno", sama SQL komanda ce to uredno da vrati. Tipa
Code:
20 rows affected

s'tim da MySQL za affected rows ne broji one gde je bila ista vrednost.

Ako treba iz stored procedure, ima affected rows .
[ pakito @ 25.11.2018. 16:51 ] @
Tačnije, može li nešto da se uradi sa ovim primerom, pa da mi se dojavi koliko je narečenih izmena izvršeno:

Code:
$unos="UPDATE `$tabela` SET `$polje` = replace(`$polje`,'$nadji', '$zamenisa')";


Napominjem da sam programer sluhista, a takvima mora sve da se dadne okrunjeno, inače slaba vajda! :)
[ nkrgovic @ 25.11.2018. 18:02 ] @
Pa kad to posaljes na izvrsavanje, trebalo bi da kao odgovor dobijes bas ono sto sam gore napisao. Broj affected rows.
[ pakito @ 25.11.2018. 18:13 ] @
A kako da se to učini vidljivim?!
[ bogdan.kecman @ 25.11.2018. 18:32 ] @
vidljivim gde?
[ bogdan.kecman @ 25.11.2018. 18:40 ] @
obzirom na "$unos=" kontam trosis php, kad odradis mysqli_query onda cimnes mysqli_affected_rows() i "pokazes" vrednost de vec oces
[ pakito @ 25.11.2018. 21:55 ] @
E, hvala ti onoliko.
Zadatak rešen evo ovako:

Code:

$unos="UPDATE `$tabela` SET `$polje` = replace(`$polje`,'$nadji', '$zamenisa')";
$uspelo=mysql_query($unos, $link);
if(! $uspelo )
{
  die('Zamena neuspela! : ' . mysql_error());
} else {
  echo "Izmene uspesne!\n";
  echo "Broj izmena " . mysql_affected_rows($link);
}

[ bogdan.kecman @ 26.11.2018. 09:34 ] @
mysql_* funkcije za rad sa mysql-om su pravljene za mysql 3.0 i rade ok
zavrsno sa 4.1, svi mysql serveri posle 4.1 ne rade ok sa mysql_
funkcijama i neophodno je da predjas na neki noviji sistem ... mysqli_*
ti je najlaksi, skoro 1:1 mozes da predjes na njega
[ pakito @ 26.11.2018. 10:34 ] @
PRVO: Kad napišem mysqli_* dobijem poruku o grešci:
Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, resource given in ...
Sa mysql_* sve radi bez greške.

DRUGO: Kako da saznam koja mi je verzija MySQL? Evo šta nalazim na cPanelu servera:
• Server: Localhost via UNIX socket
• Server type: MySQL
• Server connection: SSL is not being used
• Server version: 5.6.41 - MySQL Community Server (GPL)
• Protocol version: 10
• User: [email protected]
• Server charset: UTF-8 Unicode (utf8)
[ djoka_l @ 26.11.2018. 11:07 ] @
Sve piše

mysqli_affected_rows očekuje kao prvi paramater konekciju KOJA JE OTVORENA mysqli funkcijom, a ne mysql funkcijom. https://www.w3schools.com/php/func_mysqli_affected_rows.asp
Verzija servera je 5.6.41 (verzija MySQL baze).