希望有人可以解释我在 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";