Foros del Web » Programando para Internet » PHP »

Conexion a BD

Estas en el tema de Conexion a BD en el foro de PHP en Foros del Web. Hola a todos. Recien estoy empezando en este nuevo lenguaje, agradecere sus respuestas de antemano. Cuando invoco a una pagina para hacer la conexion a ...
  #1 (permalink)  
Antiguo 03/08/2006, 23:09
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 18 años, 3 meses
Puntos: 0
Conexion a BD

Hola a todos.
Recien estoy empezando en este nuevo lenguaje, agradecere sus respuestas de antemano.
Cuando invoco a una pagina para hacer la conexion a la bD mysql me sale el siguiente error:

Fatal error: Class 'mysqli' not found in c:\Inetpub\wwwroot\results.php on line 22

A q se debe este error? es q tengo q configurar el servidor? tengo q ubicar la libreria de conexion a mysql?
Por favor ayudenme, ya q recien estoy empezando. Mucho agradecere sus respuestas

Nota :
la conexìon la hago de esta forma (lo tome del libro de Anaya q estoy leyendo), para ello he creado un usuario y le he dado los permisos correspondientes

$db = new mysqli('localhost', 'myuser', 'mypassword', 'mydb');
  #2 (permalink)  
Antiguo 03/08/2006, 23:17
Avatar de BreCkver  
Fecha de Ingreso: enero-2006
Ubicación: Mexico, D.F.
Mensajes: 96
Antigüedad: 18 años, 10 meses
Puntos: 0
pues, alli te esta diciendo que no encuentra la clase mysqli.

Podrias poner un poco mas de tu codigo?
__________________

:-D No solo soy mexicano también soy del Politécnico :arriba:

  #3 (permalink)  
Antiguo 04/08/2006, 00:27
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 20 años
Puntos: 1
tienes que incluir el fichero en el que tienes la clase mysqli en todos los ficheros en los que la vayas a usar..
__________________
ALOZORRO v5.0 (ahora en .es)
  #4 (permalink)  
Antiguo 04/08/2006, 13:14
 
Fecha de Ingreso: septiembre-2005
Mensajes: 9
Antigüedad: 19 años, 2 meses
Puntos: 0
hola a todos no se si alguien me pueda ayudar tengo una maquina mac power pc le instale el Mamp e instale dreamweber cree una base de datos en mamp y trato de conectar la base de datos en un scrip con el siguiente codigo pero me muestra la intefaz bien pero cuando inserto datos no los guarda. Cheque el archivo que trae mamp el php_error.log y manda error en las lineas de mysql que señalo

<?php


//Configuracion de la conexion a base de datos
$bd_host = "localhost:8888";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "prueba";

//aqui hay error
--------$con = mysql_connect($bd_host, $bd_usuario, $bd_password); -------

//aqui hay error
---------mysql_select_db($bd_base, $con); ---------


//variables POST
$nom=$_POST['nombres'];
$cal=$_POST['calle'];
$col=$_POST['colonia'];

//registra los datos del empleados
$sql="INSERT INTO empresa (nom_comercial, calle, colonia) VALUES ('$nom','$cal','$col')";

//aqui hay error
--------------mysql_query($sql,$con);---------------


include('consulta.php');
?>


yo pienso que es porque no esta haciendo bien la conexion con la base de datos pero no se como solucionarlo alguin me podira ayudar porfavor????
  #5 (permalink)  
Antiguo 04/08/2006, 13:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 18 años, 3 meses
Puntos: 0
Conexion BD mysql

Hola a todos, por favor recien estoy empezando y necesito ayuda para conectarme a la BD.
Me sale el siguiente error al ejecutar una pagina con conexion a mysql

Fatal error: Class 'mysqli' not found in c:\Inetpub\wwwroot\reults.php on line 25

Mucho agradecere las respuestas que puedan darme...


Ahi va parte del codigo

<html>
<head>
<title>Results</title>
</head>
<body>
<h1>Results</h1>
<?php // create short variable names
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm= trim($searchterm);
if (!$searchtype || !$searchterm)
{
echo 'No has ingresado datos';
exit;
}
if (get_magic_quotes_gpc())
{
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
echo $searchtype;
echo $searchterm.'<br>';

}

$db = new mysqli('localhost', 'myuser', 'mypassword', 'mydb');

if (mysqli_connect_errno())
{
echo 'Error: No puede conectarse a la base de datos.';
exit;
}
  #6 (permalink)  
Antiguo 04/08/2006, 13:42
 
Fecha de Ingreso: agosto-2005
Mensajes: 132
Antigüedad: 19 años, 3 meses
Puntos: 0
Que tal, respecto a la conexion ¿porque no utilizas la siguiente funcion para conectarte?.

$con = mysql_connect("host","user","pass");

if($con){
echo "conectado";
]
else{
echo "error en ".mysql_error();
]
__________________
G-DesignStudio
by Angel Rojas
  #7 (permalink)  
Antiguo 04/08/2006, 13:44
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años
Puntos: 4
Sólo una pregunta, ¿En que momento estas declarando la clase misqli, o donde esta la inclusión de esta clase (include(archivodelaclase.algo) o require(archivodelaclase.algo))?
porque al declarar el objeto
$db = new mysqli('localhost', 'myuser', 'mypassword', 'mydb');
es que quieres trabajar con clases además de que supongo tambien que utilizaste un constructor dentro de la clase.
O acaso estoy mal?
  #8 (permalink)  
Antiguo 04/08/2006, 15:21
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 18 años, 3 meses
Puntos: 0
Conexion DB mysql

justamente esa es mi inquietud.... donde tengo q declarar el objeto, conexión. Como decia al principio recien estoy viendo este tema de PHP y todavia no entiendo algunas cosas.
Si pudieras enviarme algun ejemplo de como hacerlo te agradeceria bastante.
Muchas gracias
  #9 (permalink)  
Antiguo 04/08/2006, 16:03
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años
Puntos: 4
Bueno antes que nada para poder ayudarte necesitamos saber si por lo menos ya tienes instalado el motor de PHP y el servidor MySQL.
Además checa la sección de FAQ'S de PHP hay encontrarás como instalarlos y unos ejemplos muy buenos, ahora que si quieres que te de algunos ejemplos sencillos primero necesito saber lo que te pregunte primero.
  #10 (permalink)  
Antiguo 04/08/2006, 18:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mysqli es una extensiòn de PHP:

www.php.net/mysqli

La cual debes tener instalada y es justamente el mensaje de error que te dá o te avisa de que no la tienes instalada.

Las extensiones en PHP se instalan (bajo windows) tan sòlo descomentando la línea de php.ini que hace referencia a:

extension = php_mysqli.dll

(le quitas el ; de delante y te aseguras de que extension_dir = apunte al directorio donde PHP tiene sus php_xxx.dll. Reinicias Tú servidor y compruebas que todo quedó bien haciendo un phpinfo())

OJO que mysqli está disponible en PHP 5.x en adelante. No es necesario que uses ese "cliente" de Mysql (que es ùtil para usarlo en conjunto con Mysql 5.x en adelante y aprovechar sus funcionalidades añadidas) .. pero si es recomendable ir migrando aplicaciones a este nuevo "cliente" de manejo de Mysql con PHP. Eso sí .. teniendo en cuenta las versiones de PHP y Mysql en la que funciona (por si luego todo tu trabajo tiene que quedar en un servicio de hosting con tal o cual versiòn de PHP/Mysql).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 04/08/2006, 21:59
Avatar de BreCkver  
Fecha de Ingreso: enero-2006
Ubicación: Mexico, D.F.
Mensajes: 96
Antigüedad: 18 años, 10 meses
Puntos: 0
Hola

Agregale estas lineas a tu codigo haber que dice:
Código PHP:
$con mysql_connect($bd_host$bd_usuario$bd_password) or die("Error!! al Conectar la Bases de Datos" mysql_error());

mysql_select_db($bd_base$con)    or die ("Error al seleccionar la base de datos"mysql_error()); 
o simplemente por las contantes por ejemplo: mysql_connect"locahost","root","");
::
__________________

:-D No solo soy mexicano también soy del Politécnico :arriba:

  #12 (permalink)  
Antiguo 05/08/2006, 11:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Intenta no repetir mensajes (aquì los unì).

Por lo demás .. decidete si vas a usar las extensionse de PHP para acceder a Mysql "viejas": mysql_xxx() funciones o bien las "nuevas: mysqli_xxx() .. conociendo los requisitos de unas y de otras (en cuanto a versiones de PHP y Mysql).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 05/08/2006, 16:39
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 18 años, 3 meses
Puntos: 0
cual es la diferencia entre usar "mysql" y "mysqli".
En mi caso he bajado el PHP 5.1.5 y observo que en el archivo de configuracion tengo la siguiente linea :

;extension=php_mysql.dll

y no veo por ningun lado el mysqli
Alguien puede ayudarme a configurar mi maquina, porque como al inicio de esta consulta, no logro hacer la conexion a la bd de Mysql.
Alguien puede ayudarme a solucionar este problema.....

Mucho agradecere sus respuestas de antemano.
  #14 (permalink)  
Antiguo 06/08/2006, 13:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Las diferencias ya te las he comentado.

mysql --> Usa el "cliente" de acceso a Mysql para versiones de PHP 4.x e inferiores y Mysql 4.x e inferiores.

mysqli --> Lo usas para Mysql 5.x y sólo disponible para PHP 5.x en adelante. Con esto aprovechas todas las nuevas virtudes de Mysql 5.x

Piensa también como desarrollas tu .. no sirve de nada que te instalaes la ùltima versión de PHP .. de Mysql .. que uses las extensiones nuevas: mysqli .. y que luego tengas que publicar tu proyecto en un servicio de hosting que NO use esas versiones de PHP o de Mysql .. o por lo menos "sèrie" 5.x de Mysql y PHP. Así te tocará cambiar tu código si caes en esa situación.

Revisa bien tu php.ini .. y tu directorio /extensions de la instalación de PHP, debes tener las dos verisiones de php_xxxx.dll para Mysql.

Tienes un tutorial completo al respecto en:
http://www.maestrosdelweb.com/editorial/phpmysqlap/

Te recomendaria activar las dos extensiones de PHP para Mysql (pueden convivir juntas) .. las php_mysql.dll y php_mysqli.dll

Pero, sobre todo te recomiendo que te -aclares-!!!! con qué extensión usar!!!. Lo normal si estás "aprendiendo" PHP es que partas por instalar y usar php_mysql.dll .. cuanto te domines con eso si quieres pruebas "mysqli" si es que usas Mysql versión superior a 4.1 o 5.x ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #15 (permalink)  
Antiguo 07/08/2006, 10:42
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 18 años, 3 meses
Puntos: 0
El problema anteriormente era que habia bajado el archivo installer, ahora que he bajado el archivo zip, ahi veo que estan todas las dlls para las extensiones (he copiado todo lo q contenia el zip en esta carpeta c:\php\ph5)
He hecho todo lo que me dice el manual y aun me sigue saliendo el error.
A continuación paso a detallar lo que he hecho

En el archivo php.ini:

extension_dir = "c:\php\php5\ext"

extension=php_mysql.dll
extension=php_mysqli.dll

He setado la variable del sistema:
c:\php

PERO ME SIGUE SALIENDO ESTE ERROR:

Fatal error: Call to undefined function mysql_connect() in c:\Inetpub\wwwroot\results3.php on line 17
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\php5\ext\php_mysql.dll' - No se puede encontrar el módulo especificado. in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\php5\ext\php_mysqli.dll' - No se puede encontrar el módulo especificado. in Unknown on line 0

FAVOR SI ALGUIEN ME PUEDE AYUDAR Y VER QUE ES LO QUE ESTOY HACIENDO MAL O QUE ES LO QUE ME ESTA FALTANDO?.... MUCHAS GRACIAS
  #16 (permalink)  
Antiguo 07/08/2006, 10:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Lo primero que haces mal es bajarte la versión "zip" para conseguirte las .dll que te faltan .. En PHP se "compilan" las php_xxx.dll y .dll auxiliares para la versión exacta de PHP que uses .. ese puede ser un problema (que no usastes la misma versión en el "zip package" que en el "installer").

Por lo demás .. PHP 5.x requiere para Mysql de la versión cliente de Mysql (que son otras .dll) .. No sé si tienes instalado Mysql en tu servidor (donde corres PHP) .. parece que no.

Cita:
PHP 5+
MySQL is no longer enabled by default, so the php_mysql.dll DLL must be enabled inside of php.ini. Also, PHP needs access to the MySQL client library. A file named libmysql.dll is included in the Windows PHP distribution and in order for PHP to talk to MySQL this file needs to be available to the Windows systems PATH. See the FAQ titled "How do I add my PHP directory to the PATH on Windows" for information on how to do this. Although copying libmysql.dll to the Windows system directory also works (because the system directory is by default in the system's PATH), it's not recommended.

As with enabling any PHP extension (such as php_mysql.dll), the PHP directive extension_dir should be set to the directory where the PHP extensions are located. See also the Manual Windows Installation Instructions. An example extension_dir value for PHP 5 is c:\php\ext

Note: If when starting the web server an error similar to the following occurs: "Unable to load dynamic library './php_mysql.dll'", this is because php_mysql.dll and/or libmysql.dll cannot be found by the system.
Viene de:
www.php.net/mysql

Esa libmysql.dll está en la instalación de Mysql .. por lo menos en la versión "cliente" (es sólo esa .dll creo .. podrías "copiarla" tal vez sólo).

En cualquier caso tienes una guía de instalación de PHP -paso a paso- en:

http://www.maestrosdelweb.com/editorial/phpmysqlap/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:15.