PHP mysqli_connect не работает, но mysql_connect работает нормально

Я пытаюсь подключиться к базе данных mysql с помощью mysql_connect, и он получает желаемый результат. Однако, когда я пытаюсь получить, используя mysqli_connect ниже, отображается сообщение об ошибке:

Отказано в доступе для пользователя «@» ‘localhost’ к базе данных «tbl_name»

Вот мой код Php:

db_connect.php

<?php

/**
* A class file to connect to database
*/
class DB_CONNECT {

// constructor
function __construct() {
// connecting to database
$this->connect();
}

// destructor
function __destruct() {
// closing db connection
$this->close();
}

/**
* Function to connect with database
*/
function connect() {
// import database connection variables
require_once __DIR__ . '/db_config.php';

// Connecting to mysql database
//$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());
$con = mysqli_connect(DB_SERVER,DB_USER, DB_PASSWORD,DB_DATABASE);

// Selecing database
$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());

// returing connection cursor
return $con;
}

/**
* Function to close db connection
*/
function close() {
// closing db connection
mysql_close();
}

}

?>

getallimages.php

<?php

/*
* Following code will list all the images
*/

// array for JSON response
$response = array();

// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

// get all products from products table
$result = mysql_query("SELECT *FROM images_tbl") or die(mysql_error());

// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// products node
$response["products"] = array();

while ($row = mysql_fetch_array($result)) {
// temp user array
$product = array();
$product["images_id"] = $row["images_id"];
$product["images_path"] = $row["images_path"];
$product["submission_date"] = $row["submission_date"];

// push single product into final response array
array_push($response["products"], $product);
}
// success
$response["success"] = 1;

// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";

// echo no users JSON
echo json_encode($response);
}
?>

-1

Решение

Вы забыли прокомментировать эту строку:

$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());

Это все еще пытается соединиться, и это то, что выдает вашу ошибку.

Кроме того, ваш close() метод должен быть обновлен до mysqli.

4

Другие решения

Так должно быть:

$con = new mysqli(DB_SERVER,DB_USER, DB_PASSWORD,DB_DATABASE);

Посмотрите на руководство и постарайтесь использовать mysqli как можно более ориентированным на объект.

1

я получил ответ и вот обновленный код: —

<?php
$mysqli = new mysqli("localhost", "root", "", "test");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT * FROM images_tbl");

$rows = array();

while ($row = $res->fetch_assoc()) {

$rows[]=$row;}
echo json_encode(array('Images'=>$rows));
// CLOSE CONNECTION
mysqli_close($mysqli);
?>
0
По вопросам рекламы [email protected]