Foros del Web » Programando para Internet » PHP »

Incapaz de conectar a la maldita BD

Estas en el tema de Incapaz de conectar a la maldita BD en el foro de PHP en Foros del Web. Tengo tal que esto: Código: <?php $host = 'lldf923.servidoresdns.net'; $usuario = 'xxxx'; $password = 'xxxx'; $BBDD = 'obraPublicada'; // function Conectar(){ $link = mysql_connect($host,$usuario,$password); return ...
  #1 (permalink)  
Antiguo 06/05/2011, 23:15
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Incapaz de conectar a la maldita BD

Tengo tal que esto:

Código:
<?php
$host = 'lldf923.servidoresdns.net';
$usuario = 'xxxx';
$password = 'xxxx';
$BBDD = 'obraPublicada';
//
function Conectar(){
$link = mysql_connect($host,$usuario,$password);
return $link;
}

function Desconectar($link){
mysql_close($link);
}
//
$link = Conectar();
$q = "SELECT biLeRe FROM obraPublicada";

Desconectar($link);
?>
biLeRe es una tabla dentro de obraPublicada que contiene un texto HTML para mostrar en la web. Que nisiquiera se como mostrarlo.

En la BD tengo esto:

Cita:
-- phpMyAdmin SQL Dump
-- version 2.11.11
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 07-05-2011 a las 07:14:05
-- Versión del servidor: 5.0.77
-- Versión de PHP: 5.1.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `qil247`
--

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

--
-- Estructura de tabla para la tabla `obraPublicada`
--

CREATE TABLE IF NOT EXISTS `obraPublicada` (
`deDePa` text collate latin1_spanish_ci NOT NULL,
`proDaSa` text collate latin1_spanish_ci NOT NULL,
`reMeInMe` text collate latin1_spanish_ci NOT NULL,
`reCliFa` text collate latin1_spanish_ci NOT NULL,
`atFaRePro` text collate latin1_spanish_ci NOT NULL,
`enPa` text collate latin1_spanish_ci NOT NULL,
`deMeReCli` text collate latin1_spanish_ci NOT NULL,
`inPrEs` text collate latin1_spanish_ci NOT NULL,
`liCoSa` text collate latin1_spanish_ci NOT NULL,
`enClEs` text collate latin1_spanish_ci NOT NULL,
`inBiEs` text collate latin1_spanish_ci NOT NULL,
`seGeEm` text collate latin1_spanish_ci NOT NULL,
`biLeRe` text collate latin1_spanish_ci NOT NULL,
`maBiDe` text collate latin1_spanish_ci NOT NULL,
`meGeCl` text collate latin1_spanish_ci NOT NULL,
`saSeRe` text collate latin1_spanish_ci NOT NULL,
`liCoDe` text collate latin1_spanish_ci NOT NULL,
`liCoMe` text collate latin1_spanish_ci NOT NULL,
`traEd` text collate latin1_spanish_ci NOT NULL,
FULLTEXT KEY `biLeRe` (`biLeRe`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;

--
-- Volcar la base de datos para la tabla `obraPublicada`
--

INSERT INTO `obraPublicada` (`deDePa`, `proDaSa`, `reMeInMe`, `reCliFa`, `atFaRePro`, `enPa`, `deMeReCli`, `inPrEs`, `liCoSa`, `enClEs`, `inBiEs`, `seGeEm`, `biLeRe`, `maBiDe`, `meGeCl`, `saSeRe`, `liCoDe`, `liCoMe`, `traEd`) VALUES
('', '', '', '', '', '', '', '', '', '', '', '', '<p align="center">BIOÉTICA Y LEY EN REPRODUCCIÓN HUMANA ASISTIDA. MANUAL DE CASOS CLÍNICOS (2009)</p>\r\n<p align="center"><strong>Fundación Salud 2000 y Ed. Comares, Fernando Abellán y Javier Sánchez Caro</strong></p>\r\n<p align="justify">La reproducción humana asistida plantea innumerables conflictos éticos y jurídicos y es también un espejo donde mirar la evolución de la sociedad. No en vano tiene su campo de actuación en el contexto del origen de la vida, en la creación y manejo de embriones humanos.</p>\r\n<p align="justify">Si a lo anterior se añade que en España contamos con uno de los marcos normativos más permisivos de Europa, que atrae habitualmente a muchas parejas de otros países, la conclusión es que el análisis de los problemas que se dan en nuestro territorio es ciertamente un referente mundial en este campo.</p>\r\n<p align="justify">Los autores de esta obra, con muchos años de experiencia en el estudio bioético y legal de esta disciplina médica, desgranan con un propósito divulgativo no exento de rigor técnico, y apoyados en la exposición de casos clínicos reales, diferentes situaciones que se suceden en los centros de reproducción españoles: el acceso a las técnicas reproductivas por la mujer sin pareja, por las parejas de hecho, por las parejas de lesbianas, por personas con enfermedades como el sida o hepatitis.</p>\r\n<p align="justify">De igual forma, abordan la problemática del destino de los embriones congelados ?casos de parejas separadas o que se desentienden de ellos?, las particularidades de la medicina genética embrionaria, la criopreservación de gametos para preservar la fertilidad, la procreación post mortem, las madres de alquiler, los problemas de conciencia y la posición de las confesiones religiosas, etc.</p>\r\n<p align="justify">Por último, con el fin de que cualquier lector no conocedor de las técnicas reproductivas pueda seguir la obra, esta última cuenta con un capítulo final de consulta, realizado por un médico especialista, donde se explica cuáles son, en qué consisten, cuándo están indicadas y qué riesgos tienen.</p>', '', '', '', '', '', '');
Y el codigo ese de prueba me devuelve esto:

Cita:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) in /var/www/vhost/derechosanitarioasesores.com/home/html/prueba.php on line 8

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /var/www/vhost/derechosanitarioasesores.com/home/html/prueba.php on line 13
Por mas que intento no soy capaz :/ Alguien me ilumina? Gracias de antemano
  #2 (permalink)  
Antiguo 07/05/2011, 00:14
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Incapaz de conectar a la maldita BD

Una funcion PHP no puede acceder a variables fuera de ellas a menos que se le pase el valor directamente a la funcion o que esta adquiera las variables de forma global. Ademas, nunca seleccionas la DB.
Ejemplos:
Código PHP:
//Pasar valor
<?php
$host 
'lldf923.servidoresdns.net';
$usuario 'xxxx';
$password 'xxxx';
$BBDD 'obraPublicada';

function 
Conectar($host,$usuario,$password,$BBDD){
    
$link mysql_connect($host,$usuario,$password);
    
mysql_select_db($BBDD)
    return 
$link;
}
$link Conectar($host,$usuario,$password,BBDD);

//Global
<?php
$host 
'lldf923.servidoresdns.net';
$usuario 'xxxx';
$password 'xxxx';
$BBDD 'obraPublicada';

function 
Conectar(){
    global 
$host,$usuario,$password,$BBDD;
    
$link mysql_connect($host,$usuario,$password);
    
mysql_select_db($BBDD)
    return 
$link;
}
$link Conectar();
?>
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 07/05/2011, 06:50
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Incapaz de conectar a la maldita BD

Vale perfecto era eso :) Muchas gracias :).

Ahora el Select ese deberia funcionar o hay alguna manera mejor de mostrar la tabla de la BD?

Mi idea esque el contenido HTML de la BD se quede como codigo en la web :)

Saludos y gracias genios de la web :P
  #4 (permalink)  
Antiguo 07/05/2011, 08:04
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Incapaz de conectar a la maldita BD

Mira he hecho esto, la BD es la que os escribi arriba:

Código PHP:
<?php
$host 
'lldf923.servidoresdns.net';
$usuario 'xxx';
$password 'xxx';
$BBDD 'qil247';
//
function Conectar(){
    global 
$host,$usuario,$password,$BBDD;
    
$link mysql_connect($host,$usuario,$password);
    
mysql_select_db($BBDD);
    return 
$link;
}

function 
Desconectar($link){
mysql_close($link);
}
//
$link Conectar();

$q "SELECT biLeRe FROM `obraPublicada`";
$rs mysql_query($q,$link);
echo 
"Resultado: " $rs;
While (
$row mysql_fetch_row($rs))
{
echo 
$row["biLeRe"];
}
Desconectar($link);
?>
El echo $row ese no arroja nada y el echo $rs muestra esto:

Resultado: Resource id #2

Como puedo sacar lo contenido en biLeRe perteneciente a la tabla obraPublicada que es un area de texto con contenido HTML.

Saludos
  #5 (permalink)  
Antiguo 07/05/2011, 08:07
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Incapaz de conectar a la maldita BD

Pues la query ha sido exitosa por lo que te da.

El problema es la función mysql_fetch_row que debería ser mysql_fetch_assoc.

mysql_fetch_row devuelve un array con índices numéricos mientras que mysql_fetch_assoc devuelve un array asociativo
que es lo que tu quieres
  #6 (permalink)  
Antiguo 07/05/2011, 08:11
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Incapaz de conectar a la maldita BD

Y como se usa dicha funcion? Bueno voy a indagar. Gracias :)
  #7 (permalink)  
Antiguo 07/05/2011, 08:13
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Incapaz de conectar a la maldita BD

Se usa igual que mysql_fetch_array.

Se me ha olvidado decirte que existe otra función mysql_fetch_array en el que se le puede usar con un segundo parámetro (MYSQL_ASSOC) indicandole que te devuelve un array asociativo.

Más información:

http://www.php.net/manual/es/function.mysql-fetch-assoc.php

http://www.php.net/manual/es/function.mysql-fetch-array.php
  #8 (permalink)  
Antiguo 07/05/2011, 08:15
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Incapaz de conectar a la maldita BD

Ya encontre como funciona muchas gracias:

Dejo el codigo completo por si alguien tiene la misma duda algun dia :)

Código PHP:
<?php
$host 
'xxx';
$usuario 'xxx';
$password 'xxx';
$BBDD 'xxx';
//
function Conectar(){
    global 
$host,$usuario,$password,$BBDD;
    
$link mysql_connect($host,$usuario,$password);
    
mysql_select_db($BBDD);
    return 
$link;
}

function 
Desconectar($link){
mysql_close($link);
}
//
$link Conectar();

$q "SELECT biLeRe FROM `obraPublicada`";
$rs mysql_query($q,$link);
echo 
"Resultado: " $rs;
while (
$fila mysql_fetch_assoc($rs)) {
    echo 
$fila["biLeRe"];
   

}
Desconectar($link);
?>

Etiquetas: bd
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 04:58.