Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: procedura uniwersalna
Forum PHP.pl > Forum > Bazy danych > MySQL
blawat
witam,

czy da rade zrobic procedure uniwersalna np view ktora jako parametr przyjmowala by nazwe tabeli i wyswietlala jeje zawartosc

cos na wzor:

create procedur view (in tableName varchar(30))
BEGIN
select * from tableName;
END


oczywiscie dostaje po tym komunikat:

Error Code: 1146
Table 'tableName' doesn't exist

da rade to jakos obejsc ze procedura traktowala to jako zmienna a nie jako nazwe tabeli?
Mchl
Da radę, ale bardzo na około.
Musisz w ramach procedury skonstruować sobie zapytanie przygotowane:

Kod
DELIMITER $$

DROP PROCEDURE IF EXISTS `p_take` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `p_take`(IN tableName VARCHAR(100))
BEGIN


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


  PREPARE stmt FROM @dropStmt;
  EXECUTE stmt;

END $$

DELIMITER;


P.S. A VIEW nie jest przypadkiem słowem zarezerwowanym?
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.