Programación Web y Scripting > PHP
Problema con script en PHP
Ale992:
Bueno tengo el siguiente script:
--- Código: PHP ---<?php class db{ private $servidor;private $usuario;private $pass;private $base_datos;private $descriptor; function __construct($servidor = "mysql8.000webhost.com",$usuario = "a7863285_xasd",$pass = "xxxxxx",$base_datos = "a7863285_cManage"){$this->servidor = $servidor;$this->usuario = $usuario;$this->pass = $pass;$this->base_datos = $base_datos;$this->conectar_base_datos(); }prívate function conectar_base_datos() //ERROR EN ESTA LINEA{$this->descriptor = mysql__connect($this->servidor,$this->usuario,$this->pass) ;mysql_select_db($this->base_datos,$this->descriptor);}public function consulta($consulta){$this->resultado = mysql_query($consulta,$this->descriptor) ;}public function utf (){mysql_query ("SET NAMES 'utf8'");}}?>
Y el error es el siguiente:
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in /home/a7863285/public_html/mysql.php on line 21
Alguien tiene idea que es lo que hay mal o como solucionarlo?
Gracias.
JrcsDev:
De momento veo que en la línea 21 tienes lo siguiente "prívate function" con acento... quíate el acento al "private".
En la línea 23 y 24 (deberia estar todo en uno sola línea) dice mysql__connect, cambialo por mysql_connect
$this->descriptor = mysql__connect($this->servidor,$this-
>usuario,$this->pass) ;
Ale992:
Gracias, ya lo corregi.
Mi pregunta es si una vez creado un nuevo objeto con esa clase, y luego de haberme conectado a la base de datos y hecho la consulta a la misma usando las funciones de la clase puedo hacer mysql_close() directamente en el codigo o si la unica manera de cerrar la conexion es creando una nueva funcion en la clase que cierre la conexion. Porque lo cerre de la primer manera y me larga un error y no se si es que no se puede hacer o si volvi a hacer algo mal.
JrcsDev:
La función mysql_close($link) no siempre es necesaria... pero cuando la colocas, si no le pasas un $link en el parámetro, se cierra la última conexion...
Ale992:
Ok, ahora voy a probar, y otra cosa, disculpa que siga preguntando es que soy bastante nuevo en esto y todavia no logro comprender del todo el funcionamiento de la programacion orientada a objetos.
Este es el codigo de la clase:
--- Código: PHP --- class db{ private $servidor;private $usuario;private $pass;private $base_datos;public $descriptor; function __construct($servidor = "mysql8.000webhost.com",$usuario = "a7863285_root",$pass = "alexismoyano1992",$base_datos = "a7863285_cManage"){$this->servidor = $servidor;$this->usuario = $usuario;$this->pass = $pass;$this->base_datos = $base_datos;$this->conectar_base_datos(); }private function conectar_base_datos(){$this->descriptor = mysql_connect($this->servidor,$this->usuario,$this->pass) ;mysql_select_db($this->base_datos,$this->descriptor);}public function consulta($consulta){$this->resultado = mysql_query($consulta,$this->descriptor) ;}public function extraer_registro (){if ($fila = mysql_fetch_array($this->resultado,MYSQL_ASSOC)){ return $fila;} else { return $fila[0]= "ERROR";}}public function utf (){mysql_query ("SET NAMES 'utf8'");}public function close (){ mysql_close($this->descriptor);}}
Y este el del programa:
--- Código: PHP --- require_once("mysql.php"); $usuario = new db(); $query= "SELECT * FROM news ORDER BY newID DESC LIMIT 0,10"; $usuario->utf(); $usuario->consulta($query); $fila = $usuario->extraer_registro(); // $resultado=mysql_query($query, $connect) or die ("Problema al acceder a los datos ".mysql_error()); // while ($reg = mysql_fetch_array($resultado)) // { // $fecha= $reg['date']; // echo "<div id="date" align="right">( ".cambiaf($fecha).")</div>"; // echo "<div id='met'>".stripslashes($reg["title"])."</div>"; // echo "<div class='text'><p>".stripslashes($reg["article"])."<br/></p></div>"; // echo "<div id='hr2'></div>"; //} echo $fila[0]; echo $fila[1]; echo "Hola"; $usuario->close();
Yo tengo que tomar los 10 ultimos registros que se encuentran en una base de datos, eso lo hago pero despues tengo que tomar los datos de cada fila y mostrarlos, eso antes lo hacia sin la programacion orientada a objetos, pero ahora quiero pasar todo y se me complico, la manera como la realizaba antes era lo que esta como comentario y de esa manera funcionaba perfecto, pero como deberia hacerlo en POO.
Y otra cosa, en la funcion extraer_registro() de la clase supuestamente deberia devolver una variable $fila que es un array con los datos, pero como los recibo a esos datos?
Lo hice de la siguiente manera como ven en el codigo:
$fila = $usuario->extraer_registro();
y despues intente ver que tenia la variable pero no tiene nada o por lo menos no muestra nada...
Navegación
[#] Página Siguiente
Ir a la versión completa