php - paso - pagina web con base de datos mysql
¿Cómo puedo conectarme a un servidor mysql desde una página php usando Synology? (3)
Estoy usando DSM6 con DS716 +, y el siguiente código me funciona. Hay demasiados motivos para llegar al problema de conexión. Tal como la extensión no habilitada, etc. Utilice phpinfo () para verificar antes de cualquier otro paso. Intenta usar la extensión mysqli en lugar de mysql, adjunta un código de ejemplo:
<?php
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");
$query = "SHOW TABLES";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_row()) {
printf("%s <br />/n", $row[0]);
}
$result->close();
}
$mysqli->close();
?>
PD: Por favor, deje el comentario para quien me da un voto negativo
Tengo un dispositivo de Synology anterior (DSM v5.2-5967 Update 4, phpmyadmin v4.4.7-0103) que tiene algunos sitios web locales con páginas de php en funcionamiento. Deseo migrar esto a mi nuevo dispositivo Synology (DSM V6.1.3-15152 Actualización 1, phpmyadmin v4.6.6-0172). Al instalar la nueva versión de phpmyadmin desde Package Center, también debo descargar Maria DB y PHP 5.6, mientras que esto no es un requisito en DSM 5. Además, DSM 6 ahora admite opciones en Web Station, donde puedo configurar el servidor back-end http y versión PHP. Configuré esto en 5.6, el que se instaló junto a phpmyadmin.
Aquí está el código que solía funcionar para mí en el antiguo DSM:
<?php
define ("DB_HOST", "localhost"); // Your database host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn''t make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn''t select database");
?>
Este código ahora devuelve "No se pudo establecer la conexión". Otros sitios que no manejan esto devuelven un error de 500 servidores. Intenté reemplazar localhost por el nombre del dispositivo de Synology, sin éxito. Los archivos PHP funcionan bien, pero no puedo conectarme a una base de datos. No puedo ver el panel de control de Maria DB en ninguna parte, por lo que no sé si me falta alguna configuración. Este es un dispositivo nuevo, con una nueva instalación de paquetes, así que aún no he cambiado la contraseña de root.
Incluso intenté instalar Apache 2.4 desde el Centro de paquetes, configurándolo como el servidor de servicios de fondo en la nueva configuración de la Estación web y reiniciando el NAS. Pero phpyadmin todavía muestra "nginx / 1.11.10" como el servidor web. Como referencia, mi antiguo NAS muestra Apache en el servidor web, pero no tengo instalado el paquete Apache.
Estoy perdido ¿Alguien ha tratado de conectarse a una base de datos mysql usando Synology DSM 6 y ha vivido para contarlo?
mysql-server se está ejecutando? #service mysql status
o #mysql
en la línea de comandos. También puedes usar #mysql -u USERNAME -p
o #mysql -u USERNAME -h localhost -p
para verificar el inicio de sesión. Ver hombre mysql
necesitas agregar un puerto
Yo uso PDO
pero puedes usar mysql_connect
try
{
$pdo = new PDO("mysql:host=servernameport=3307;dbname=database", "username", "password");
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return $pdo;
Para saber qué puerto necesita, vaya a maria db
si este paquete está instalado automáticamente cuando instala phpmyadmin