У меня проблема с PHP и mysqli, которую я не знаю, как решить. Я пытаюсь сделать запрос к БД и получить результаты в виде ассоциативного массива, но я не могу туда добраться. Когда я захожу на эту страницу, я получаю пустой экран, на котором ничего нет.
Это мой код:
$link = mysqli_connect("localhost", "dash_user", "DASH_dash", "dashboard");
$query = "SELECT * FROM system_settings";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
printf ("%s (%s)\n", $row["install_date"], $row["export_reports_enabled"]);
}
/* free result set */
mysqli_free_result($result);
Я буквально получил это из библиотеки PHP. Я также попробовал это:
<?php
$ddb_database = "dashboard";
$ddb_host = "localhost";
$ddb_user = "dash_user";
$ddb_pass = "DASH_dash";
$ddb_port = "3306";
$ddb=mysqli_connect("$ddb_host", "$ddb_user", "$ddb_pass", "$ddb_database", "$ddb_port");
if (!$ddb)
{
die("MySQL Dashboard DB connect ERROR: " . mysqli_error('mysqli'));
}
if ($result = mysqli_query($ddb,$stmt))
{
$result = mysqli_query($ddb, $stmt);
$row_cnt = mysqli_num_rows($result);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
$install_date = $row["install_date"];
$messaging_enabled = $row['messaging_enabled'];
$tasks_enabled = $row['tasks_enabled'];
$alerts_enabled = $row['alerts_enabled'];
$export_reports_enabled = $row["export_reports_enabled"];
mysqli_free_result($result);
}
echo "Install date: $install_date";
echo "Export reports: $export_reports_enabled";
echo "Number of rows: $row_cnt";
Но я до сих пор никуда не денусь. Там нет ошибок подключения.
БД выглядит так:
MariaDB [dashboard]> SELECT * FROM system_settings;
+--------------+-------------------+---------------+----------------+------------------------+
| install_date | messaging_enabled | tasks_enabled | alerts_enabled | export_reports_enabled |
+--------------+-------------------+---------------+----------------+------------------------+
| 2015-02-23 | N | N | N | N |
+--------------+-------------------+---------------+----------------+------------------------+
1 row in set (0.00 sec)
Я также понимаю, что Mysqli также совместим с MariaDB (мой движок БД). Может ли это быть причиной моей проблемы?
если это ваш полный код (в первом разделе), вы пропускаете }
что принадлежит if
$link = mysqli_connect("localhost", "dash_user", "DASH_dash", "dashboard");
$query = "SELECT * FROM system_settings";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
printf ("%s (%s)\n", $row["install_date"], $row["export_reports_enabled"]);
}
/* free result set */
mysqli_free_result($result);
}
Я не могу быть уверен, что это именно то, что вы хотели, поэтому вам, возможно, придется переместить скобу вверх.
Намного проще отладить ваш код, если вы сделаете отступ правильно.
редактировать: взглянуть на этот на ваш вопрос mariaDB.
также, как сказано в комментариях, включи сообщение об ошибке, чтобы увидеть, что происходит.
ini_set('error_reporting', E_ALL);
Других решений пока нет …