Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
SDK
Mam następujące zapytanie:

  1. SELECT prod_id, prod_catid, prod_price, prod_date, prod_name, prod_description, prod_active, prod_store,
  2. (SELECT COUNT(*) FROM $db_images WHERE img_for = CONCAT('$for', p.prod_id))
  3. FROM $db_shop_products AS p
  4. WHERE prod_catid = '$id'
  5. ORDER BY $qsort $order"

Oraz następującą funkcję :

  1. -- DROP FUNCTION concat(text, text);
  2.  
  3. CREATE OR REPLACE FUNCTION concat(text, text)
  4. RETURNS text AS $BODY$
  5. SELECT $1 || $2;
  6. $BODY$
  7. LANGUAGE 'sql' VOLATILE
  8. COST 100;
  9. ALTER FUNCTION concat(text, text) OWNER TO postgres;

Otrzymuję następujący komunikat:
Cytat
Warning: pg_query() [function.pg-query]: Query failed: ERROR: function concat(unknown, integer) does not exist LINE 2: ... (SELECT COUNT(*) FROM images WHERE img_for = CONCAT('pr... ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. in C:\wamp\www\projekt\system\core\admin\shop\products.php on line 49

Pytanie brzmi - jak zmodyfikować funkcję, aby działała poprawnie ?
Sedziwoj
Po pierwsze, po co używać funkcji, to jest bez sensu.
Po drugie, przecież pisze co jest nie tak,
Cytat
function concat(unknown, integer) does not exist
Ty masz concat(text, text). Jak już chcesz używać tej funkcji, to rzutuj to co przekazujesz na typ TEXT, (w ten sposób "concat(cos::TEXT, 'inne'::TEXT) ") i powinno wywoływać funkcję która już istnieje.

Pamiętaj że funkcje w PG, to nie w PHP, gdzie nie ma przeciążenia. (PHP nie rozróżnia funkcji pod względem przyjmowanych parametrów)
SDK
Dziękuję serdecznie za ponowną pomoc. Brakowało jeszcze ' ' do tej funkcji i zaczęło śmigać. Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.