我将一个小的服务站点从AlterVista门户转移到我的NAS语法,运行良好的代码现在不再在我的NAS上运行。从连接错误到MariaDB。我已经读过你的论坛关于这个问题,但这是另一个系统(不是个人电脑,但nas与其自己的应用程序)。我使用的是端口3307,因为mariadb10正在监听该端口。(当mariadb 5正在监听端口3306时,您也可以检查)
在NAS上,我已经安装了MariaDB、PHP、PHP (与mariadb连接良好)、ApacheHTTPServer2.2,以及所有需要安装PHP 5、7 (mysqli、pdo驱动程序和其他选项)的驱动程序和选项。
<?php
error_reporting(E_ALL);
$USERNAME = "root";
$PASSWORD = "xxxxxxx"; //null
$DBSERVER = "127.0.0.1:3307"; //127.0.0.1:3306 mariadb5
$DBNAME = "miodb";
if(!($db_connection = new mysqli($DBSERVER, $USERNAME, $PASSWORD, $DBNAME)))
die('Connect Error (' . $db_connection->connect_errno . ') '. $db_connection->connect_error);
if(!($db_selection = $db_connection->select_db($DBNAME)))
die ("Errore nella selezione del DB.");
$query = $db_connection->query("SELECT * FROM MATERIALE");
while($cicle=$query->fetch_array(MYSQLI_ASSOC)){
$url=$cicle['FOTO'];
echo "<tr>
<td>".$cicle['CODICEARTICOLO']."</td>
<td><img src='".$url."' width='50' height='50' /> </td>
<td>".$cicle['DESCRIZIONE']."</td>
<td>".$cicle['PREZZO']." Euro</td>
</tr>";
}
$query->close();
$db_connection->close();
?>警告: mysqli::__construct():(HY000/2002):第111号行上的连接被拒绝在>/volume1 1/web/listino.php中警告: mysqli::select_db():无法获取mysqli >in /volume1 1/web/listino.php第114行Errore nella selezione del DB.
发布于 2020-10-12 10:41:45
请尝尝这个
$db_host = '127.0.0.1';
$db_user = 'root';
$db_pass = '';
$db_database = 'database_name';
$db_port = '3306';
$connection = mysqli_connect($db_host,$db_user,$db_pass,$db_database,$db_port);发布于 2020-10-12 14:18:42
我修改了图形控制台语法Nas:
3307(default)上/IP端口设置上的db10标志启用
发布于 2020-10-12 12:23:17
当连接到Synology上的MariaDB时,您需要提供所有六个参数。第六个参数是您应该使用的套接字名称。
mysqli连接的正确代码如下:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// Please do not connect as root!
$mysqli = new mysqli('localhost', 'root', 'password', 'miodb', 3307, '/run/mysqld/mysqld10.sock');
$mysqli->set_charset('utf8mb4'); // always set the charset如果您只是从PHP开发开始,那么我建议您学习PDO,而不是mysqli。使用PDO,您将以这种方式连接:
$pdo = new PDO("mysql:host=localhost;dbname=miodb;charset=utf8mb4;unix_socket=/run/mysqld/mysqld10.sock", 'root', 'password', [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_EMULATE_PREPARES => false
]);https://stackoverflow.com/questions/64315574
复制相似问题