Таблицы отображаются в phpmyadmin, но не в запросе + больше - PullRequest
0 голосов
/ 01 мая 2018

Я все еще новичок в POSTING из html веб-формы с php в базу данных, но я думаю, что смог собрать воедино все, что мне нужно. Но чего-то все еще не хватает, и я не знаю, что.

Я проверил свое соединение и таблицы с:

<?php
  $link = mysqli_connect("localhost","#user","#password", "#database");
  if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
  }
  echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
  echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
  $test_query = "SHOW TABLES FROM" $#database;
  $result = mysqli_query($connect, $test_query);
  $tblCnt = 0;
  while($tbl = mysqli_fetch_array($result)) {
    $tblCnt++;
    #echo $tbl[0]."<br />\n";}
    if (!$tblCnt) {
        echo "There are no tables<br />\n";
    } else {
        echo "There are $tblCnt tables<br />\n";
    }
  mysqli_close($link);
?>

Я пробовал 127.0.0.1 и IP-адрес узла доступа (RemoteMySQL) безрезультатно. У моего пользователя есть полные права. Я не знаю ни о какой другой безопасности по умолчанию, которая могла бы мешать мне.

Я хостинг с Bluehost, используя MySQL и phpmyadmin. В моей базе данных есть 2 таблицы, и они появляются, когда я набираю «SHOW TABLES» в phpmyadmin. Что мне не хватает? Это вне моего понимания. Я в своем уме ...

Большое спасибо!

1 Ответ

0 голосов
/ 01 мая 2018

Я вижу некоторые проблемы в этой строке.

$test_query = "SHOW TABLES FROM" $#database; // Line 10

У вас нет переменной с именем $ database. И у вас есть символ #, который не является правильным. # используется для комментариев (http://php.net/manual/en/language.basic-syntax.comments.php)

После FROM отсутствует пробел. Эта строка должна быть

$test_query = "SHOW TABLES FROM " . $database;

В противном случае сгенерированный запрос будет "SHOW TABLES FROMDATABASE_NAME", что приведет к ошибке SQL.

Кроме того, у вас отсутствует фигурная скобка после цикла while. Вот полный исправленный код.

<?php
$link = mysqli_connect("localhost","#user","#password", "#database");
if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
 }
 echo "Success: A proper connection to MySQL was made! The my_db 
 database is great." . PHP_EOL;
 echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
 $database = "YOUR_DATABASE_NAME_HERE";
 $test_query = "SHOW TABLES FROM " . $database;
 $result = mysqli_query($link, $test_query);
 $tblCnt = 0;
 while($tbl = mysqli_fetch_array($result)) {
     $tblCnt++;
 }
 // echo $tbl[0]."<br />\n";}
 if (!$tblCnt) {
     echo "There are no tables<br />\n";
 } else {
     echo "There are $tblCnt tables<br />\n";
 }
 mysqli_close($link);
 ?>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...