I want to replace field name with variable to get data from table in PHP and MySQL.
select * from demo where variable-1
instead of select * from demo where fieldname=1
as there are more than 50 fieldname to be chosen from drowpdown.
Variables will not work on field names as well as table Names. The only time it will do is when you are creating dynamic sql, eg
SET @variableName = 'fieldname';
SET @sql = CONCAT('SELECT * FROM demo WHERE `', @variableName, '` = 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
@variableName with backticks in case it might be a reserved word?:DSET @sql = CONCAT('SELECT * FROM demo a WHERE a.', @variableName, ' = 1');You can use Prepared Statements
delimiter //
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
PREPARE stmt FROM @s;
EXECUTE stmt;
END
//
delimiter ;
Dynamic Queryfor your desiredOutput!