query oci_connect instant ejemplo conexiones php oracle

php - oci_connect - xampp-oracle



¿Cómo puedo detectar, usando php, si la máquina tiene Oracle(oci8 y/o pdo_oci) instalado? (4)

¿Cómo puedo detectar, usando php, si la máquina tiene (oci8 and/or pdo_oci) instalado?

Estoy trabajando en un proyecto de PHP donde algunos desarrolladores, como yo, lo tenemos instalado, pero hay poca necesidad de que los temers lo tengan. ¿Cómo puedo escribir una función rápida para utilizar en el código para que mis artistas puedan trabajar en el aspecto del sitio sin que se cuelgue?


Como se mencionó anteriormente por Greg, programáticamente puede usar el método function_exists (). No olvide que también puede usar lo siguiente para ver todos los detalles del entorno con su instalación de PHP usando lo siguiente:

<?php phpinfo(); ?>


No sé si entiendo completamente tu pregunta, pero una manera simple sería hacer esto:

<?php $connection = oci_connect(''username'', ''password'', ''table''); if (!$connection) { // no OCI connection. } ?>


si la extensión oci no está instalada, entonces obtendrá un error fatal con la respuesta de farside.myopenid.com, puede usar function_exists (''oci_connect'') o extension_loaded (''oci8'') (o lo que sea que se llame en realidad la extensión)


La gente aquí tiene piezas de la solución, pero vamos a rodar todo en una sola solución.

Para una sola instancia de una función de Oracle, probar con function_exists() es suficiente; pero si el código está salpicado en todas las llamadas OCI, va a ser un gran dolor en el culo para envolver a todos en una prueba function_exists() .

Por lo tanto, creo que la solución más simple sería crear un archivo llamado nodatabase.php que pudiera verse más o menos así:

<?php // nodatabase.php // explicitly override database functions with empty stubs. Only include this file // when you want to run the code without an actual database backend. Any database- // related functions used in the codebase must be included below. function oci_connect($user, $password, $db = '''', $charset=''UTF-8'', $session_mode=null) { } function oci_execute($statement, $mode=0) { } // and so on...

Luego, incluya condicionalmente este archivo si se define un global (por ejemplo, THEME_TESTING) justo antes de llamar al código de la base de datos. Tal inclusión podría verse así:

// define("THEME_TESTING", true) // uncomment this line to disable database usage if( defined(THEME_TESTING) ) include(''nodatabase.php''); // override oracle API with stub functions for the artists.

Ahora, cuando entregues el proyecto a los artistas, simplemente necesitan hacer esa modificación y están listos para continuar.