mysql_query соединение NULL результат, но я установил соединение успешно

У меня проблема с MySQL. У меня есть PHP-скрипт, который возвращает массив в данные JSON из базы данных.
Я получил сообщение ‘echo’ об успешном соединении, но мой результат равен нулю массива.

В результате на Explorer я:

Connected successfully

query: SELECT name,id FROM rz_DWzZ'

result:

RESULT:[]

Это этот сценарий.

$conn = mysql_connect($servername, $username, $password);
mysql_select_db($database);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$return_arr = array();
$qstring = "SELECT name,id FROM rz_DWzZ";
$result = mysql_query($qstring,$conn);
echo "<br>query: ".$qstring."<br>";
echo "<br>result: ".$result."<br>";
while ($row = mysql_fetch_assoc($result))//loop through the retrieved values
{
$row['name']=htmlentities(stripslashes($row['name']));
$row['id']=(int)$row['id'];
array_push($return_arr,$row);
}
mysql_close($conn);
echo "<br>RESULT:".json_encode($return_arr);

0

Решение

Вы не проверяли на неудачу должным образом. Функции mysql _ * () возвращают логическое значение FALSE при сбое, которое echo будет печататься как невидимая строка нулевой длины.

Вы должны явно проверить это:

$result = mysql_query(...) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^--method #1

if ($result === false) { // method #2
die(mysql_error());
}

И, конечно, вы не должны использовать эти функции в любом случае. Они устарели / устарели, и ваш код теперь бесполезен в новых версиях PHP. Вы должны использовать mysqli или PDO для любой новой разработки.

Кроме того, у вас есть множество других ошибок:

if ($conn->connect_error) {

библиотека функций mysql _ * () НИКОГДА не была объектно-ориентированной. Это чисто процедурно, и не имеет абсолютно НЕТ поддержки объектов вообще. Поэтому этот тест соединения всегда будет неудачным, так как $conn->connect_error всегда будет иметь значение null, что также преобразуется в логическое значение false, означающее, что вы получите ложноположительный результат для успеха.

1

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

Других решений пока нет …

По вопросам рекламы [email protected]