Comunidad de diseño web y desarrollo en internet online

CLASSE MYSQL PARA AMFPHP

Citar            
MensajeEscrito el 03 Ago 2006 05:46 am
MYSQL CLASS FOR AMFPHP

CLASE ORIGINAL: 'MySqlRS' , AUTOR = undefined ( Al menos para mi :lol: )
MODIFICADA POR FRANCISCO ARANDA (SHADOW) : [email protected] : www.allsolutions.cl : 2006

Modificaciones de la original:
-Devuelve el array de la consulta sql en cualquier funcion que se defina.
-Cada posición del array devuelto es un objeto que contiene los nombres de las columnas devueltas por la consulta como atributos.

ESTE ES EL SERVICIO PHP PARA AMFPHP
GUARDALO COMO AllMysql.php EN LA CARPETA DE SERVICIOS DEL DIRETORIO DE AMFPHP

Código :

<?  php
//AllMysql.php

class AllMysql
{
   var $dbhost = '';
   var $dbuser = '';
   var $dbpass = '';
   var $dbname = '';
   
   function AllMysql()   { 
      $this -> methodTable = array   (
            'dbReceiveData' => array   (
            'description' => 'devuelve en un arreglo la consulta sql',
            'access' => 'remote',
            'returns' => 'array',
            'arguments' => array('query' => array('type' => 'string', 'required' => true),
            'dbname' => array('type' => 'string', 'required' => false),
            'dbhost' => array('type' => 'string', 'required' => false),
            'dbuser' => array('type' => 'string', 'required' => false),
            'dbpass' => array('type' => 'string', 'required' => false))
            ),
            'dbSendData' => array   (
            'description' => 'envía datos a mysql, insert, modify, update... NO select),
            'access' => 'remote',
            'returns' => 'boolean',
            'arguments' => array('query' => array('type' => 'string', 'required' => true),
            'dbname' => array('type' => 'string', 'required' => false),
            'dbhost' => array('type' => 'string', 'required' => false),
            'dbuser' => array('type' => 'string', 'required' => false),
            'dbpass' => array('type' => 'string', 'required' => false))
            )      
      );
   }
   
      function dbReceiveData($query,$dbname='',$dbhost='',$dbuser ='', $dbpass='')   {
            $dbname = ($dbname == '') ? $this->dbname : $dbname;
            $dbhost = ($dbhost == '') ? $this->dbhost : $dbhost;
            $dbuser = ($dbuser == '') ? $this->dbuser : $dbuser;
            $dbpass = ($dbpass == '') ? $this->dbpass : $dbpass;
            $conn = mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error);
            mysql_select_db($dbname) or die(mysql_error); 
            $query_ris = mysql_query($query, $conn);         
            $noFields = mysql_num_fields($query_ris);
            $fields = array();
            for ($i = 0; $i < $noFields; $i++) {
               $fields[$i] = mysql_field_name($query_ris, $i);
            }      
            return (array($query_ris,$fields));
            mysql_free_result($query_ris);
            mysql_close();   
      }
   
      function dbSendData($query,$dbname='',$dbhost='',$dbuser='' , $dbpass='')   {            
            $dbname = ($dbname == '') ? $this->dbname : $dbname;
            $dbhost = ($dbhost == '') ? $this->dbhost : $dbhost;
            $dbuser = ($dbuser == '') ? $this->dbuser : $dbuser;
            $dbpass = ($dbpass == '') ? $this->dbpass : $dbpass;            
            $conn = mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error);
            mysql_select_db($dbname) or die(mysql_error);            
            if(!mysql_query($query)) return false;
                  else return true;
                  // If the query is executed it returns TRUE, else it returns FALSE.
                  mysql_close();
            }
      }

?>


----------------------------------------------------------------

ESTA ES LA CLASE ACTIONSCRIPT 2.0
GUARDALA COMO AllMysql.as Y POR SUPUESTO IMPORTALA COMO CLASE
----------------------------------------------------------------

Código :

import mx.remoting. *;
import mx.rpc. *;

class AllMysql
{
   
   public var defaultGatewayURL = 'http://localhost/remoting/gateway.php';
   public var gatewayURL:String;
   private var conn:Connection;
   private var serv1:Service;
   private var serv:NetServiceProxy;
   private var servList : NetServiceProxy;
   public var db : String;
   public var host : String;
   public var user : String;
   public var pass : String;
   
   function AllMysql (db, host, user, pass,gatewayURL)
   {
      mx.remoting.debug.NetDebug.initialize ();
      NetServices.setDefaultGatewayUrl (gatewayURL);
      this.conn = NetServices.createGatewayConnection ();
      this.db = db;
      this.host = host;
      this.user = user;
      this.pass = pass;
      this.gatewayURL = gatewayURL == undefined ? defaultGatewayURL : gatewayURL;
   }
   
   function getDbData (db_query : String,responde:Function) : Void
   {
      var respuesta : Object = new Object ();
      respuesta.dbReceiveData_Result = function (data)
      {
            var rs:Array = data;
            var values:Array = rs[0];
            var column:Array = rs[1];
            var array:Array = new Array();
            
            for (var pos = 0; pos < values.getLength (); pos ++) {         
               array[pos] = new Object ();         
               for (var nom = 0; nom < column.length; nom ++){
                  array[pos][column[nom]] = values.getItemAt(pos)[column[nom]];            
               }         
            }
            
            responde(array);         
      }
      serv = this.conn.getService ('mysql', respuesta);
      serv.dbReceiveData (db_query, this.db, this.host, this.user, this.pass);
   }
   
   function sendDbData (db_query : String, db_name : String, db_host : String, db_user : String, db_pass : String, responde:Function) : Void
   {
      var respuesta : Object = new Object ();
      respuesta.dbSendData_Result = function (data)
      {
         var rs:Boolean = data;
         responde(rs);      
      }
      serv = this.conn.getService ('mysql', respuesta);
      serv.dbSendData (db_query, this.db, this.host, this.user, this.pass);
   }
   
}

----------------------------------------------------------------
USO:
ESTE CODIGO DEBE SER PUESTO EN TU 'PELICULA'
----------------------------------------------------------------

Código :

//var AllMysql = new AllMysql ('db_name', 'd_host', 'db_usr', 'db_pass', 'amfphpGatewayURL');
  var AllMysql = new AllMysql ('mydb', 'localhost', 'root', '', 'http://localhost/remoting/gateway.php');
//AllMysql.getDbData(' CONSULTA SQL',función llamada cuando se realiza la consulta);
  AllMysql.getDbData ('SELECT columna1,columna2,columna3 FROM myTable', MyFunction);

   function MyFunction(rs) //contiene como parametro el arreglo devuelto
   {
      
      for (i in rs)
      {
//cada posición del arreglo es un objeto con los nombres de las columnas de la o las tablas a la cual se realizo la consulta como atributos.  :o 
                  
//trace (rs[i].nombreColumna);
         trace (rs[i].columna1);
         trace (rs[i].columna2);
         trace (rs[i].columna3);
         //Y esto es lo que me hizo más facil el trabajo  :cool: .
      }
   };


ESPERO QUE LES SIRVA!
SALUDOS DESDE CHILE!

Por AllSolutions

5 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 04 Ago 2006 02:54 am
AllSolutions gracias por tu aporte. Tienes buenas nociones de programación.

Permiteme decirte, que desafortunadamente tu código es muy inseguro. Cualquiera podrá ver el usuario y contraseña de la base de datos. Ese tipo de información, nunca debe ser ingresada en un swf.


Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 04 Ago 2006 03:19 am
mmm vi el codigo de pasada, y tienes un error o mejor dicho algo "inutil", que no hace nada,

Código :

return (array($query_ris,$fields));
mysql_free_result($query_ris);
mysql_close();


despues de ejecutarse el return el siguiente codigo NO se ejecuta, asi que estan demas ;)

igual gracias por el aporte :)

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.