Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
收集数据库信息时发生PHP错误_Php_Sql - Fatal编程技术网

收集数据库信息时发生PHP错误

收集数据库信息时发生PHP错误,php,sql,Php,Sql,嗨,我有下面的php文件中的代码 global $server, $mysqlusername, $mysqlpassword, $db; $conn = new mysqli($server, $mysqlusername, $mysqlpassword, $db); function getCategories() { global $conn; $categories = array(); $sql = "SELECT categoryName FROM reportcatego

嗨,我有下面的php文件中的代码

 global $server, $mysqlusername, $mysqlpassword, $db;
 $conn = new mysqli($server, $mysqlusername, $mysqlpassword, $db);


function getCategories() {
global $conn;
$categories = array();

$sql = "SELECT categoryName FROM reportcategorys";
$maincat = $conn->query($sql);

while($row = $maincat->fetch_array(MYSQLI_ASSOC)) {
    // do something with the $row
    array_push($categories, $row);
}
$sql1 = "SELECT * FROM reportsubcategorys";
$subcats = $conn->query($sql1);

// Loop through sub categories and append to parent array
while($row = $subcats->fetch_array(MYSQLI_ASSOC)) {
    $parent = $row['categoryName'];
    $name =   $row['subCategoryName'];

    // Append subcategory name as child to the parent category
    for ($i=0; $i<count($categories); $i++) {
        if ($categories[$i]['categoryName'] == $parent) {
            array_push($categories[$i], $name);
        }
    }
}
//print_r($categories);
return $categories;    
}
global$server、$mysqlusername、$mysqlpassword、$db;
$conn=newmysqli($server、$mysqlusername、$mysqlpassword、$db);
函数getCategories(){
全球$conn;
$categories=array();
$sql=“从reportcategorys中选择categoryName”;
$maincat=$conn->query($sql);
而($row=$maincat->fetch_数组(MYSQLI_ASSOC)){
//对$row做些什么
数组推送($categories,$row);
}
$sql1=“从报表子类别中选择*”;
$subcats=$conn->query($sql1);
//循环遍历子类别并附加到父数组
而($row=$subcats->fetch_数组(MYSQLI_ASSOC)){
$parent=$row['categoryName'];
$name=$row['subcategory name'];
//将子类别名称作为子类别附加到父类别

对于($i=0;$i),您的查询可能没有正确执行

mysqli->query()

$maincat = $conn->query($sql) or die($conn->error);

另外,在与数据库建立连接时,请检查连接是否无错误

if ($conn->connect_errno) {
        printf("Connect failed: %s\n", $conn->connect_error);
        exit();
    }

您使用fetch_数组是否有特殊原因

像这样试试看

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verificar la conexión */
if (mysqli_connect_errno()) {
    printf("Conexión fallida: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* obtener array asociativo */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* liberar el resultset */
    $result->free();
}

/* cerrar la conexión */
$mysqli->close();
?>


您可能也应该检查此链接。我会阅读此链接,看看是否最好不要使用fetch_数组。按照您的说明,现在它告诉我尚未选择任何数据库。然后检查您在建立连接时使用的$db变量。它可能是无效数据库或空字符串。回显$db的值以查看它是否为空。是的,这是解决的大部分问题,从那时起它有一点扩展,但这是一个不同的问题。感谢您的帮助!
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verificar la conexión */
if (mysqli_connect_errno()) {
    printf("Conexión fallida: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* obtener array asociativo */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* liberar el resultset */
    $result->free();
}

/* cerrar la conexión */
$mysqli->close();
?>