如何使用Synology从php页面连接到mysql服务器?
作者:互联网
我有一个较旧的Synology设备(DSM v5.2-5967 Update 4,phpmyadmin v4.4.7-0103),它有一些带有工作php页面的本地网站.我想将其迁移到我的新Synology设备(DSM V6.1.3-15152 Update 1,phpmyadmin v4.6.6-0172).从Package Center安装新版本的phpmyadmin时,我也需要下载Maria DB和PHP 5.6,而这在DSM 5中不是必需的.此外,DSM 6现在支持Web Station中的选项,我可以在其中配置http后端服务器和PHP版本.我把它设置为5.6,与phpmyadmin一起安装的那个.
以下是以前在旧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");
?>
此代码现在返回“无法建立连接”.其他不处理此问题的站点会返回500服务器错误.我尝试用Synology设备的名称替换localhost,但无济于事. PHP文件本身工作正常,但我无法连接到数据库.我无法在任何地方看到Maria DB的控制面板,所以我不知道我是否缺少任何设置.这是一个新设备,全新安装包,所以我还没有更改root密码.
我甚至尝试从Package Center安装Apache 2.4,并将其设置为新Web Station设置中的后端服务器,然后重新启动NAS.但phpyadmin仍然显示“nginx / 1.11.10”作为Web服务器.作为参考,我的旧NAS在Web服务器下显示Apache,但我没有安装Apache软件包.
我不知所措.有没有人试图使用Synology DSM 6连接到mysql数据库并且活着告诉故事?
解决方法:
我正在使用DSM6和DS716,以下代码对我有用.导致连接问题的原因太多了.如扩展名未启用等.请在执行任何其他步骤之前使用phpinfo()进行验证.尝试使用mysqli extension而不是mysql,为您附加示例代码:
<?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();
?>
PS:请留下评论给谁一个downvote
标签:php,mysql,phpmyadmin,mariadb,synology 来源: https://codeday.me/bug/20190622/1264337.html