Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczna nazwa kolumny/tabeli w funkcji
Forum PHP.pl > Forum > Bazy danych > MySQL
zaksmok
Witam serdecznie. Czy możliwe jest przekazanie nazwy tabeli lub pola do funkcji mysqlowej w postaci zmiennej?

czyli mając funkcję
  1. take('nazwa')

skrypt wykona
  1. SELECT * FROM nazwa
mortus
Rozumiem, że funkcja take to funkcja php-owa? Jeżeli tak, to przecież to żaden problem
  1. function take($table_name) {
  2. // ustanowienie połączenia z bazą danych
  3. $sql = "SELECT * FROM {$table_name};
  4. $result = mysql_query($sql);
  5. return $result;
  6. }
I po kłopocie!
EDIT:
Oczywiście to tylko przykładowa funkcja. Mam nadzieję, że zobrazowałem ideę.
Mchl
Przy pomocy zapytań przygotowanych i tylko w procedurach

Kod
DELIMITER $$

DROP PROCEDURE IF EXISTS `p_take` $$
CREATE PROCEDURE `p_take`(IN tableName VARCHAR(100))
BEGIN


  SET @stmt = CONCAT('SELECT * FROM ',tableName,' WHERE 1');


  PREPARE stmt FROM @dropStmt;
  EXECUTE stmt;

END $$

DELIMITER;
Mejdej
Witam,

podłącze się pod temat, bo mam podobny problem. Sposób z poprzedniego posta działa wyśmienicie, ale co w sytuacji gdy wynik chce się przypisać do zmiennej?

Np:

  1. SELECT id INTO zmienna FROM nazwa_tabeli


oczywiście przy założeniu że zapytanie jest w procedurze, do której jako parametr przekazywana jest nazwa_tabeli.

Proszę o jakiś skuteczny sposób na rozwiązanie tego problemu.
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.