antes que nada queria decir que llevaba años sin tocar php y me he topado con un proyecto que he empezado pero me esta dando un fallo en el include y no sé como solventarlo.
EL sistema de directorios es el siguiente:
public_html-->webService --> Database.php
|
--> mysql_login.php
|
--> arqueta(DIR) --> arqueta.php
|
--> Obtener_arquetaById.php
cuando compruebo si funciona con:
http://105.5.10.222/~carmen/webService/arqueta/Obtener_arquetaById.php?idArqueta=1
el error es el siguiente:
Código:
Warning: require_once(webService/mysql_login.php) [function.require-once]: failed to open stream: No such file or directory in /home/carmen/public_html/webService/Database.php on line 7
Fatal error: require_once() [function.require]: Failed opening required 'webService/mysql_login.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/carmen/public_html/webService/Database.php on line 7
y los ficheros:
mysql_login.php
Código
<?php /** * Provee las constantes para conectarse a la base de datos * Mysql. */ ?>
Database.php
Código
<?php /** * Clase que envuelve una instancia de la clase PDO * para el manejo de la base de datos */ require_once 'webService/mysql_login.php'; class Database { /** * Única instancia de la clase */ private static $db = null; /** * Instancia de PDO */ private static $pdo; final private function __construct() { try { // Crear nueva conexión PDO self::getDb(); } catch (PDOException $e) { // Manejo de excepciones } } /** * Retorna en la única instancia de la clase * @return Database|null */ public static function getInstance() { if (self::$db === null) { self::$db = new self(); } return self::$db; } /** * Crear una nueva conexión PDO basada * en los datos de conexión * @return PDO Objeto PDO */ public function getDb() { if (self::$pdo == null) { self::$pdo = new PDO( 'mysql:dbname=' . DATABASE . ';host=' . HOSTNAME . ';port:63343;', USERNAME, PASSWORD, ); // Habilitar excepciones self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return self::$pdo; } /** * Evita la clonación del objeto */ final protected function __clone() { } function _destructor() { self::$pdo = null; } } ?>
arqueta.php
Código
require '/home/carmen/public_html/webService/Database.php'; class Arqueta { function __construct() { } /** * Retorna en la fila especificada de la tabla 'arqueta' * * @param $idArqueta Identificador del registro * @return array Datos del registro */ public static function GetAll() { $consulta = "SELECT * FROM arqueta"; try { // Preparar sentencia $comando = Database::getInstance()->getDb()->prepare($consulta); // Ejecutar sentencia preparada $comando->execute(); return $comando->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { return false; } } /** * Obtiene los campos de una arqueta con un identificador * determinado * * @param $idArqueta Identificador de la arqueta * @return mixed */ public static function GetById($idArqueta) { // Consulta de la arqueta $consulta = "SELECT * FROM arqueta WHERE id = ?"; try { // Preparar sentencia $comando = Database::getInstance()->getDb()->prepare($consulta); // Ejecutar sentencia preparada // Capturar primera fila del resultado $row = $comando->fetch(PDO::FETCH_ASSOC); return $row; } catch (PDOException $e) { // Aquí puedes clasificar el error dependiendo de la excepción // para presentarlo en la respuesta Json return -1; } } /** * Actualiza un registro de la bases de datos basado * en los nuevos valores relacionados con un identificador * * @param $idArqueta * @param $insert_time * @param $nombre_arqueta * @param $direccion_arqueta * @param $uuid_sensor1 * @param $uuid_sensor2 * @param $uuid_sensor3 */ public static function Update( $idArqueta, $insert_time, $nombre_arqueta, $direccion_arqueta, $uuid_sensor1, $uuid_sensor2, $uuid_sensor3 ) { // Creando consulta UPDATE $consulta = "UPDATE arqueta" . " SET insert_time=?, nombre_arqueta=?, direccion_arqueta=?, uuid_sensor1=?, uuid_sensor2=?, uuid_sensor3=? " . "WHERE id=?"; // Preparar la sentencia $cmd = Database::getInstance()->getDb()->prepare($consulta); // Relacionar y ejecutar la sentencia $cmd->execute(array($insert_time, $nombre_arqueta, $fdireccion_arqueta, $uuid_sensor1, $uuid_sensor2, $uuid_sensor3, $idArqueta)); return $cmd; } /** * Insertar una nueva arqueta * * @return PDOStatement */ public static function Insertar( $insert_time, $nombre_arqueta, $direccion_arqueta, $uuid_sensor1, $uuid_sensor2, $uuid_sensor3 ) { // Sentencia INSERT $comando = "INSERT INTO arqueta ( " . " insert_time," . " nombre_arqueta," . " direccion_arqueta," . " uuid_sensor1," . " uuid_sensor2," . " uuid_sensor3)" . " VALUES( ?,?,?,?,?,? )"; // Preparar la sentencia $sentencia = Database::getInstance()->getDb()->prepare($comando); return $sentencia->execute( $insert_time, $nombre_arqueta, $direccion_arqueta, $uuid_sensor1, $uuid_sensor2, $uuid_sensor3 ) ); } /** * Eliminar el registro con el identificador especificado * * @param $idArqueta identificador de la arqueta * @return bool Respuesta de la eliminación */ public static function Delete($idArqueta) { // Sentencia DELETE $comando = "DELETE FROM arqueta WHERE id=?"; // Preparar la sentencia $sentencia = Database::getInstance()->getDb()->prepare($comando); } } ?>
Obtener_arquetaById.php
Código
<?php //obtenemos un arqueta por id. require "Arqueta.php"; if($_SERVER['REQUEST_METHOD'] == 'GET') { { $idArqueta = $_GET['idArqueta']; $arqueta = Informes::getById($idArqueta); if($arqueta) { $datos['estado'] = 1; $datos['arqueta'] = $arqueta; } else { $datos['estado'] = 2; $datos['mensaje'] = 'Ha ocurrido un error.'; } } else { $datos['estado'] = 3; $datos['mensaje'] = 'Se necesita un identificador.'; } } ?>
A que se debe el error?
PD: datos de la base de datos, contraseñas son ficticios.