PHP 与 Maria DB 的连接

PHP 与 Maria DB 的连接

希望有人可以解释我在 Ubuntu 20.04 上建立 PHP 7 和 MariaDB Server 10.3.32 之间的简单连接时发现的问题。

以下是连接数据:

$dsn = "mysql:localhost; dbname=databasename; charset=utf8mb4";  
$options = [ PDO::ATTR_EMULATE_PREPARES => false,  
             PDO::ATTR_ERRMODE => PDO::ERRORMODE_EXCEPTION,   
             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
            ];
$pdo = new PDO($dsn, "username", "password", $options);

需要$options先删除,然后才能将字符串数据输出到程序。如果不这样做,我只会得到黑框,我猜想这是某种类型的数据,而不是我正在寻找的字符串。

我尝试注释掉 PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC,但问题仍然存在。我发现,如果我注释掉 PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC,我可以使用 for 循环获取带有数字索引 $dvds[0][0]; 的信息,但我不能使用数据库列的名称,即 $dvds['title']; 如果我将其取消注释,我可以使用 print_r 获取它,但在使用数字或关联索引的 for 循环中我无法获得任何东西。奇怪!我发现我没有正确访问返回的数据。我需要使用 foreach 循环,然后通过数据库中每列的关联标题访问每一行。谢谢。

答案1

经过一周的尝试,我终于发现问题在于 CSS 代码将所有表格背景都设为黑色,文本也是黑色,因此什么都看不见。我不敢相信,但从一开始这就是问题所在。我觉得发布这个帖子很愚蠢,但也许这会对其他人有所帮助。谢谢。

答案2

您是否有可能遗漏host=$dsn作业?

喜欢:

$dsn = "mysql:host=localhost; dbname=databasename; charset=utf8mb4";

相关内容