Example #1
0
 public function dropTables()
 {
     $mysqli = $this->database->getMysqli();
     $mysqli->query("SET FOREIGN_KEY_CHECKS = 0");
     foreach ($this->daos as $dao) {
         $dao->dropTable();
     }
     $mysqli->query("SET FOREIGN_KEY_CHECKS = 1");
 }
Example #2
0
 /**
  * @return mixed
  *
  */
 public static function query()
 {
     $numArgs = func_num_args();
     if (!$numArgs) {
         return false;
     }
     $mysqli = Database::getMysqli();
     if ($numArgs == 1) {
         $stmt = $mysqli->prepare(func_get_arg(0));
         if (!$stmt) {
             Logger::log('$mysqli->prepare failed (%s) (query="%s").', $mysqli->error, func_get_arg(0));
             return false;
         }
         $stmt->execute();
         if ($stmt->errno) {
             Logger::log('$mysqli->execute failed (%s).', $stmt->error);
             return false;
         }
         $result = Database::fetch($stmt);
         $stmt->close();
         return $result;
     }
     // if the number of arguments is more than two
     $type = "";
     $arguments = array();
     for ($i = 1; $i < $numArgs; $i++) {
         /*
          *
          * TODO:
          *      better error handling for invalid types
          *
          */
         $argument = func_get_arg($i);
         array_push($arguments, $argument);
         switch (gettype($argument)) {
             case "string":
                 $type .= 's';
                 break;
             case "NULL":
                 $type .= 's';
                 break;
             case "double":
                 $type .= 'd';
                 break;
             case "integer":
                 $type .= 'i';
                 break;
             case "boolean":
                 $type .= 'i';
                 break;
             default:
                 return false;
                 break;
         }
     }
     array_unshift($arguments, $type);
     $stmt = $mysqli->prepare(func_get_arg(0));
     if (!$stmt) {
         Logger::log('$mysqli->prepare failed (%s) (query="%s").', $mysqli->error, func_get_arg(0));
         return false;
     }
     if (!call_user_func_array(array($stmt, "bind_param"), CommonUtil::arrayToReferences($arguments))) {
         Logger::log('$mysqli->bind_param failed.');
         return false;
     }
     $stmt->execute();
     if ($stmt->errno) {
         Logger::log('$mysqli->execute failed (%s).', $stmt->error);
         return false;
     }
     if ($stmt->affected_rows == -1) {
         $result = Database::fetch($stmt);
     } else {
         $result = $stmt->insert_id;
     }
     $stmt->close();
     return $result;
 }