Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear Base de datos desde php

Estas en el tema de Crear Base de datos desde php en el foro de PHP en Foros del Web. Hola amigos tengo un pequeño problema con la siguiente función al crear una base de datos con php, claramente el código funciona, pero resulta que ...
  #1 (permalink)  
Antiguo 17/05/2015, 13:54
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años
Puntos: 11
Exclamación Crear Base de datos desde php

Hola amigos tengo un pequeño problema con la siguiente función al crear una base de datos con php, claramente el código funciona, pero resulta que el nombre de la Base de datos lo recibo por el método POST y se lo anclo a la consulta que generalmente tendrá la variable $sql, el problema es que la cadena de la consulta queda así:

'CREATE DATABASE "bdPrueba" '

Si observan se le agrega dos comillas al nombre de la bd, por lo cual mysql claramente me genera un error al ejecutar dicha sentencia.

Es mega urgente PLEASAE AYUDAAAA!!!

function createDatabase() {
$servername = "localhost";
$username = "user";
$password = "user";
$enlace = mysql_connect($servername, $username, $password);
$nameDatabase = $_POST['nameDatabase'];
$enlace = mysql_connect($servername, $username, $password);
if (!$enlace) {
$response['code'] = -1;
$response['message'] = 'El sistema no pudo conectarse. ';
echo json_encode($response);
} else {
echo $nameDatabase . '<br/>';
$sql = "CREATE DATABASE $nameDatabase";
echo $sql.'<br/>';
if (mysql_query($sql, $enlace)) {
$response['code'] = 1;
$response['message'] = 'La base de datos se creó correctamente';
echo json_encode($response);
} else {
$response['code'] = -1;
$response['message'] = 'Error al crear la base de datos. ';
echo json_encode($response);
}
}
}
  #2 (permalink)  
Antiguo 17/05/2015, 14:30
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años
Puntos: 11
Respuesta: Crear Base de datos desde php

Hola amigos he resuelto yo mismo el problema.

generalmente no se porque php agregaba las comillas a las cadenas que recibia, por ello al concatenar una cadena con otra que recibia por POST($nameDatabase) generaba algo como:

'CREATE DATABASE "bdPrueba" '

y las maldigas comillas (") se tiraban la consulta...

así que simple, cree un for que recorriera la consulta y la construyera nuevamente, pero omitiera las comillas y listo!, se que también se puede hacer con un replace, pero no me quise complicar por que no tengo mucha idea de como usar el método, en verdad trabajo el 90% de mis proyectos con JAVA y php lo toco solo cuando necesito hacer cosas pequeñas tales como páginas con poco manejo de datos... :D

for ($i = 0; $i < strlen($sqlin); $i++) {
if ($sqlin[$i] != '"') {
$sql .= $sqlin[$i];
}
}

Etiquetas: mysql, sql, variable
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 07:28.