收集数据库信息时发生PHP错误
嗨,我有下面的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
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();
?>