select('DESCRIBE ' . $tableName); // Create the class name based on the table name (e.g. "users" -> "User") $className = ucwords($tableName, '_'); // Generate the necessary lists outside of the heredoc $columnFieldsList = implode(', ', array_map(function ($column) { return $column['Field']; }, $columnData)); $columnValuesList = implode(', ', array_map(function ($column) { return '$' . $column['Field']; }, $columnData)); $quotedColumnValuesList = implode(', ', array_map(function ($column) { return '$' . $column['Field'] . ' = $this->db->quote($' . $column['Field'] . ');'; }, $columnData)); $setColumnsList = implode(', ', array_map(function ($column) { return $column['Field'] . ' = $' . $column['Field']; }, $columnData)); // Generate the PHP code for the CRUD model based on the column data $modelCode = <<db = \$db; } public function getAll{$className}() { return \$this->db->select('SELECT * FROM $tableName'); } public function get{$className}ById(\$id) { return \$this->db->select('SELECT * FROM $tableName WHERE id = ?', [\$id])->fetch(); } public function create{$className}($columnValuesList) { $quotedColumnValuesList \$this->db->insert('INSERT INTO $tableName ($columnFieldsList) VALUES ($columnValuesList)'); return \$this->db->lastInsertId(); } public function update{$className}(\$id, $columnValuesList) { $quotedColumnValuesList \$this->db->update('UPDATE $tableName SET $setColumnsList WHERE id = ?', [\$id]); return true; } public function delete{$className}(\$id) { \$this->db->delete('DELETE FROM $tableName WHERE id = ?', [\$id]); return true; } } PHP; // Save the generated PHP code to a file file_put_contents(__DIR__ . "/../app/Models/$className.php", $modelCode); // Output a success message echo "CRUD model for table '$tableName' generated successfully.\n";