lunes, 9 de noviembre de 2009

MYSQL Class


<font class="Apple-style-span" face="'Courier New', Courier, monospace">// for :MySQL class //************************************** Updates & more info: http://code.bn2vs.com/viewtopic.php?t=129 //************************************** // Name: MySQL class // Description:A very easy-to-use mysql database class. This class enables you to interact with a mysql database in a very fluent, oop and logical way. Using it will reduce the amount of errors in your code, make it shorter and easier to read, make it shorter, and optimize memory usage. // By: [RTS]BN+VS* // // // Inputs:None // // Returns:None // //Assumes:None // //Side Effects:None //This code is copyrighted and has limited warranties. //Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.2614/lngWId.8/qx/vb/scripts/ShowCode.htm //for details. //************************************** <?php /** * BN+ PHP Library * * bn.mysql.php * Version 1.1.4 * * By De Dauw Jeroen - jeroendedauw@gmail.com * January 2009 * * Class based upon work by Dimitar Angelov, February 2008 */ class MySQL { public $sqlServer = 'localhost'; public $sqlUser = 'root'; public $sqlPassword = ''; public $database; public $last_query = ''; private $connection; private $query_result; public function __construct() {} public function __destruct() { $this->Close(); } //+======================================================+ // Create a connection to the MySQL database //+======================================================+ public function Connect($server = null, $user = null, $password = null, $database = null){ if (isset($server)) $this->sqlServer = $server; if (isset($user)) $this->sqlUser = $user; if (isset($password)) $this->sqlPassword = $password; if (isset($database)) $this->database = $database; $this->connection = mysql_connect($this->sqlServer, $this->sqlUser, $this->sqlPassword); if($this->connection){ if (mysql_select_db($this->database)){ return $this->connection; }else{ return $this->error(); } }else{ return $this->error(); } } //+======================================================+ // Execute a query //+======================================================+ public function Query($query, $die = false){ if ($query != NULL){ $this->last_query = $query; $this->query_result = mysql_query($query, $this->connection); if(!$this->query_result){ if ($die) die("die: ".$this->query_result); return $this->error(); }else{ if ($die) die("die: ".$this->query_result); return $this->query_result; } }else{ echo "Empty query cannot be executed!"; } } //+======================================================+ // Returns the result //+======================================================+ public function GetResult(){ return $this->query_result; } //+======================================================+ // Returns the connection //+======================================================+ public function GetConnection(){ return $this->connection; } //+======================================================+ // Returns an object with properties representing the result fields and values //+======================================================+ public function GetObject($qry = null){ if (isset($qry)) $this->query($qry); return mysql_fetch_object($this->GetResult()); } //+======================================================+ // Returns an array with keys representing the result fields and values //+======================================================+ public function GetArray($query_id = ""){ if($query_id == NULL){ $return = mysql_fetch_array($this->GetResult()); }else{ $return = mysql_fetch_array($query_id); } return $return ? $return : $this->error(); } //+======================================================+ // Returns the number of rows in the result //+======================================================+ public function GetNumRows($qry = null){ if (isset($qry)) $this->Query($qry); $amount = mysql_num_rows($this->GetResult()); return empty($amount) ? 0 : $amount; } //+======================================================+ // Returns if the result contains rows //+======================================================+ public function HasResults($qry = null) { if (isset($qry)) $this->Query($qry); return $this->GetNumRows($qry) > 0; } //+======================================================+ // Returns the number of rows that where affected by the last action //+======================================================+ public function GetAffectedRows($qry = null, $query_id = null){ if (isset($qry)) $this->Query($qry); if(empty($query_id)){ $return = mysql_affected_rows($this->GetResult()); }else{ $return = mysql_affected_rows($query_id); } return $return ? $return : $this->error(); } //+======================================================+ // Returns the auto generated id from the last insert action //+======================================================+ public function GetInsertId($connection_link = null){ return mysql_insert_id(isset($connection_link) ? $connection_link : $this->connection); } //+======================================================+ // Close the connection to the MySQL database //+======================================================+ public function Close(){ if(isset($this->connection)){ return @mysql_close($this->connection); } else { return $this->error(); } } //+======================================================+ // Outputs the MySql error //+======================================================+ private function error(){ if(mysql_error() != ''){ echo '<b>MySQL Error</b>: '.mysql_error().'<br/>'; } } } ?></font>

Ejemplo de extends en PHP


    <?php
    class a{
     var $str;
     function fone($strIn){
      $this->str = $strIn;
     }
    }
    class b extends a{
     function ftwo($strIn){
      $this->fone($strIn);
     }
     function output(){
      echo $this->str;
     }
    }
    $b = new b;
    $b->ftwo('testing');
    $b->output();
    ?>

El uso de foreach en lugar de while en variables POST y GET

&lt;font class="Apple-style-span" face="'Courier New', Courier, monospace"&gt; &amp;amp;amp;lt;?
&lt;font class="Apple-style-span" face="'Courier New', Courier, monospace"&gt; // El uso de la funcion foreach, la cual es // mas eficiente que el while(list... // la primera linea tomalas variables post, y // la segunda linea toma las variables get... foreach($_POST as $key=&amp;amp;amp;amp;amp;amp;gt;$val){ $$key = $val; } foreach($_GET as $key=&amp;amp;amp;amp;amp;amp;gt;$val){ $$key = $val; } ?&amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;lt;/font&amp;amp;amp;gt;&lt;/font&gt;

Ventajas de Saber Programar


12 consejos de optimización de PHP


  1. Si un método puede ser estático, declaralo estático. La velocidad mejorará por 4
  2. Evita cosas como __get, __set, __autoload
  3. require_once() es caro
  4. Usa las rutas completas en los includes y requires, así se perderá menos tiempo resolviendo la ruta
  5. Si necesitas saber el momento en el que el script comenzó a ejecutarse $_SERVER[’REQUEST_TIME’] es mejor que time()
  6. Mira si puedes utilizar strncasecmp, strpbrk y stripos en lugar de expresiones regulares
  7. preg_replace es más rápido que str_replace, pero strtr es 4 veces más rápido que preg_replace
  8. Si una funcion, por ejemplo una que reemplace cadenas, acepta arrays y caractéres individuales como argumentos, y si tu lista de argumentos no es demasiado larga, considera escribir unos cuantos estados redundantes para el reemplazo, pasando un caracter de cada vez, en lugar de una línea de código que acepte arrays como argumentos de una búsqueda y reemplazo.
  9. La supresión de errores con @ es muy lenta
  10. $row[’id’] es 7 veces más rápido que $row[id]
  11. Los mensajes de error son caros
  12. No uses funciones dentro o para loop, como por ejemplo ($x=0; $x < count($array); $x). La función count() es llamada cada vez

viernes, 6 de noviembre de 2009

Como mostrar contenido al Azar en PHP




<?php
$content = array(
    'http://www.address1.com|image1|Caption 1',
    'http://www.address2.com|image2|Caption 2',
    'http://www.address3.com|image3|Caption 3',
    'http://www.address4.com|image4|Caption 4'
);


shuffle($content);


foreach ($content as $value)
{
    $explode = explode('|', $value);
    echo '<p><a href="' . $explode[0] . '"><img src="/misc/php/shuffle/' . $explode[1] . '.gif" border="0" width="100" height="25" align="absmiddle"></a>  <a href="' . $explode[0] . '">' . $explode[2] . '</a></p>';
}
?>