Developer guide     >     Developing Extensions     >     Examples

SQL

The following example demonstrates the execution of SQL on yeager's database.
 
  1. <?php
  2.     namespace com\yg;
  3.    
  4.     class exampleDB extends \pageExtension {
  5.    
  6.         public $info = array(
  7.             "NAME" => "Example database operations",
  8.             "DEVELOPERNAME" => "yeager GmbH",
  9.             "VERSION" => "1.0",
  10.             "API" => "1.0",
  11.             "DESCRIPTION" => "SQL db operations example",
  12.             "URL" => "http://www.yeager.cm/",
  13.             "TYPE" => EXTENSION_PAGE,
  14.             "ASSIGNMENT" => EXTENSION_ASSIGNMENT_USER_CONTROLLED
  15.         );
  16.        
  17.         public function install() {
  18.             if (parent::install()) {
  19.                 // you should use this->_code to prefix your table to make sure it's unique
  20.                 $tablename = "yg_ext_".$this->_code."_exampletable";
  21.                 $sql = "CREATE TABLE $tablename (
  22.                    id INT NOT NULL AUTO_INCREMENT,
  23.                    title VARCHAR(100) NOT NULL,
  24.                    author VARCHAR(40) NOT NULL,
  25.                    creation DATE,
  26.                    PRIMARY KEY (id)
  27.                 );";
  28.                 $dbr = sYDB()->Execute($sql);
  29.                 if ($dbr === false) {
  30.                     throw new \Exception(sYDB()->ErrorMsg());
  31.                     return false;
  32.                 }
  33.                 return parent::setInstalled();
  34.             } else {
  35.                 return false;
  36.             }
  37.         }
  38.  
  39.         public function uninstall() {
  40.             if (parent::uninstall()) {
  41.                 $tablename = "yg_ext_".$this->_code."_exampletable";
  42.                 $sql = "DROP TABLE $tablename;";
  43.                 $dbr = sYDB()->Execute($sql);
  44.                 if ($dbr === false) {
  45.                     throw new \Exception(sYDB()->ErrorMsg());
  46.                     return false;
  47.                 }
  48.                 return parent::setUnInstalled();
  49.             } else {
  50.                 return false;
  51.             }
  52.         }
  53.  
  54.         public function onRender() {
  55.             $action = sApp()->request->parameters['action'];
  56.             if ($action == "insert") {
  57.                 $title = mysql_real_escape_string(sApp()->request->parameters['title']);
  58.                 $author = mysql_real_escape_string(sApp()->request->parameters['author']);
  59.                 $date = time();
  60.  
  61.                 $tablename = "yg_ext_".$this->_code."_exampletable";
  62.                 $sql = "INSERT INTO $tablename
  63.                     (title, author, creation) VALUES
  64.                     ('$title', '$author', $date);";
  65.                 $dbr = sYDB()->Execute($sql);
  66.                 if ($dbr === false) {
  67.                     throw new \Exception(sYDB()->ErrorMsg());
  68.                     return false;
  69.                 } else {
  70.                     echo("SUCCESS");
  71.                     die();
  72.                 }
  73.             }
  74.         }
  75.     }
  76. ?>