-1

Есть сервер ubuntu и https сайт. На страничке php подключаюсь к базе данных. На любой запрос ответ false. Причем если подключится по ssh и выполнить запрос в mysql, то всё работает. Что делать?

<?php
$servername = "localhost:3306";
$username = "username";
$password = "password";
$dbname = "chem";

// Create connection
$conn = new mysqli($servername, $username, $password,$dbname);

if (!$conn) {
    die("Not Connected". mysqli_error());
} 

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "<p>Connected successfully</p>";
$sql = "SELECT MAX(ДатаВремя) AS mdt FROM chem.`Установка ценников` WHERE `Установка ценников`.`id-цены` = 105;";
$result = $conn->query($sql);
if(!$result){
    die("Not Result");
}
if($result){
printf("$result->num_rows=%i\n<br>", $result->num_rows);
}
if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    echo "max(`ДатаВремя`)=".$row["mdt"];
} else {
    echo "0 results</p>";
}
$conn->close();
?>

Возвращает : Connected successfully и Not Result.

Решение:

$conn->query("SET NAMES utf8;");

А как без этого работать?

AlexGlebe
  • 17,227
  • 1
    ну дак почему при подключении вы в состоянии вывести ошибку, а при запросе нет? – teran Jan 03 '19 at 13:01
  • @teran добавил die("Not Result:" . $mysqli->error); - выводит пустую строку. – AlexGlebe Jan 03 '19 at 15:07
  • $mysqli->sqlstate - тоже пустая строка. – AlexGlebe Jan 03 '19 at 15:13
  • $mysqli->errno - код ошибки = 0 – AlexGlebe Jan 03 '19 at 15:15
  • У вас объект соединения с БД - $conn, какое $mysqli? – u_mulder Jan 03 '19 at 15:34
  • И вот вы все поля в бектики обернули а ДатаВремя нет. – u_mulder Jan 03 '19 at 15:37
  • Галочки все перепробовал, нужны только при присутсвии пробела и минуса. – AlexGlebe Jan 03 '19 at 15:40
  • printf("Версия клиентской библиотеки: %s\n", mysqli_get_client_info()); => mysqlnd 5.0.12-dev - 2015040 ; а запрос $sql = "SELECT VERSION() as mdt;" ; => 5.7.24-0ubuntu0.18.04.1 , что такое клиент и где он ? – AlexGlebe Jan 03 '19 at 15:58
  • Спасибо за внимание, нашёл решение. $conn->query("SET NAMES utf8;");. Подскажите пожалуйста, как без этого запроса работать? – AlexGlebe Jan 03 '19 at 16:30

1 Answers1

-1

Вручную нужно настроить кодировку utf8: в файле /etc/mysql/my.cnf:

[mysqld]
character_set_server = utf8

Затем перегрузится :

sudo service mysql restart
AlexGlebe
  • 17,227