MYSQLi_Query не работает с подключением к БД в папке «Включает» - PullRequest
0 голосов
/ 09 сентября 2011

Я установил файл dbconn.php во вложенной папке вне корня документа.Когда я ссылаюсь на $ mysqli из него как часть оператора select, я получаю ошибку

Warning: mysqli_query() [function.mysqli-query]: Couldn't fetch mysqli     
in /home/tgitcorp/public_html/Admin/admin_index.php on line 18
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given 
in /home/tgitcorp/public_html/Admin/admin_index.php on line 20 

Мой файл dbconn.php выглядит следующим образом:

<?php
    $mysqli = new mysqli('localhost','dbuser','pass','dbname');
    if ($mysqli->connect_error){
        die('Connect Error (' . $mysqli_connect_errno . ')'. $mysqli->connect_error);
    }
    $mysqli->close();   
?>

Вот мой код:

<?php 
include_once '/home/tgitcorp/includes/dbconn.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML     
1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Tricorp Job Listing Admin Panel</title>
    <link rel="stylesheet" href="../css/style.css" type="text/css"/>
</head>
<body>
    <h1>Job Listing Administration</h1>
    <h2>Step 1:  Please Select Your Restaurant</h2>
    <form id="frmSelStore" method="post">
    <?php 
    $result=mysqli_query($mysqli,'SELECT location from restaurant');
    echo '<select name="ddlStore">';
    while($row=mysqli_fetch_array($result))
    {
        echo '<option value="' . htmlspecialchars($row['location']) . '"></option>';
    }
    echo '</select>';
    ?>
    </form>
</body>
</html>

Я хочу запросить таблицу ресторанов, чтобы получить поле местоположения и заполнить это поле как значения в моем раскрывающемся списке.Кто-нибудь может помочь в устранении этой ошибки?

Спасибо!

ОБНОВЛЕНИЕ № 2: Пересмотренный блок кода:

<?php 
$result=$mysqli->query($mysqli,'SELECT location from restaurant');
echo '<select name="ddlStore">';
while($row=$mysqli->query($result))
{
    echo '<option value="' . htmlspecialchars($row['location']) . '">';
    '</option>';
}
echo '</select>';
?>

выдает сообщение об ошибке:

Warning: mysqli::query() expects parameter 1 to be string, object given 
in /home/tgitcorp/public_html/Admin/admin_index.php on line 18
Warning: mysqli::query() [mysqli.query]: Empty query 
in /home/tgitcorp/public_html/Admin/admin_index.php on line 20 

1 Ответ

4 голосов
/ 09 сентября 2011

Почему вы закрываете соединение, как только создаете его?Это должно быть как-то связано с этим.Мне кажется, что $mysqli->close() принадлежит внутри блока if.

РЕДАКТИРОВАТЬ: В любом случае закрытие соединения не является обязательным, как описано здесь: http://php.about.com/od/phpfunctions/qt/mysql_close.htm

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