I was wondering if it's possible to define tables and columns names and use them in different sql queries in a php script.
I tried some combinations like:
define("USERS_TABLE", "users");
define("COLUMN_NAME", "username");
function getUserName()
{
$dbh = new DBHandler();
if ($dbh->getInstance() === null) {
die("No database connection");
}
try {
$sql = "SELECT".COLUMN_NAME."FROM".USERS_TABLE"where id=1";
$stmt = $dbh->getInstance()->prepare($sql);
$stmt->execute();
return $number_of_rows = $stmt->fetchColumn();
}
}
I also tried:
try {
$sql = "SELECT :column FROM :table where id=1";
$stmt = $dbh->getInstance()->prepare($sql);
$stmt->bindParam(':column', COLUMN_NAME, PDO::PARAM_STR);
$stmt->bindParam(':table', USERS_TABLE, PDO::PARAM_STR);
$stmt->execute();
return $number_of_rows = $stmt->fetchColumn();
}
And:
define("USERS_TABLE", "users");
define("COLUMN_NAME", "username");
$tablename= USERS_TABLE;
$columnname = COLUMN_NAME;
function getUserName() use ($tablename,$columnname)
{
try {
$sql = "SELECT :column FROM :table where id=1";
$stmt = $dbh->getInstance()->prepare($sql);
$stmt->bindParam(':column', $columnname, PDO::PARAM_STR);
$stmt->bindParam(':table', $tablename, PDO::PARAM_STR);
$stmt->execute();
return $number_of_rows = $stmt->fetchColumn();
}
}
but without any success. Maybe it's not possible to do such kind of things? Thanks