Помогите пожалуйста. На сервере ранее был php 5.4.45 и всё отлично работало, теперь сервер обновился до 5.6.40 и перестало всё работать как надо. Есть бд mysql в которой две таблицы, keywords и names. В первой таблице содержаться ключи, во второй имена. Смысл был в том, что я открываю страницу mysite.ru/самый-глупый-алексей (скрипт еще убирал всякие "-" для удобства и выводил в title страницы)и если у меня в таблице keywords была запись "самый глупый" и в таблице names была запись "алексей", то открывалась страница page.tpl с html кодом, если таких записей не существовало, то открывалась страница error.tpl с html кодом страница не найдена, а если был запрос mysite.ru/админка то открывалась третья страница с админкой конечно и всё работало отлично, не важно какая было значение keywords на русском или английском. Теперь открывается почему то только на английском, русский вообще не воспринимает и админка не открывается, кодировка в mysql utf-8 впрочем она не менялась. Сменилась только версия php, всё что смог сам разглядеть, это mysql_query сменил на mysqli_query и всё что кончается на i. Собственно сам код: PHP: <?php error_reporting(E_ALL); ini_set('display_errors', 1); session_start(); echo mb_internal_encoding(); $mysqli = new mysqli("localhost","user","password","db_name"); if ($mysqli -> connect_errno) { printf("Не сработало: %s\n", $mysqli->connect_error); exit(); } //require_once('mysqli.inc'); $uploaddir = '/var/www/domainname/data/www/mysite.ru/'; $module = 'index'; $action = 'index'; $params = array(); if ($_SERVER['REQUEST_URI'] != '/') { try { $url_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $url_path = urldecode ($url_path); $uri_parts = explode('-', trim($url_path, ' -')); $znachenie = ''; $search = ''; $title = ''; foreach ($uri_parts as $search) { if ($znachenie != '') {$znachenie .= $search;} else if ($search != 'в') {$title .= $search.' ';} if ($search == 'в') { $znachenie .= $search.' '; } } $title = str_replace('/', '', $title); $search = $uri_parts[count($uri_parts)-1]; $sql = "SELECT * FROM names where name = '".$search."'"; $result = mysqli_query($mysqli, $sql); $row = mysqli_fetch_assoc($result); if ($row['name']) { $title = str_replace($search, '', $title); $znachenie=$search;} $sql = "SELECT * FROM keywords where keyword = '".$title."'"; $result = mysqli_query($mysqli, $sql); if (!$result) { $message = 'Неверный запрос: ' . mysql_error() . "\n"; $message .= 'Запрос целиком: ' . $sql; die($message); } $row = mysqli_fetch_assoc($result); if (!$row['keyword']) { throw new Exception(); } if ($title=='админка') {require_once('adminpage.tpl');} else {require_once('page.tpl');} } catch (Exception $e) { require_once('error.tpl'); } } $mysqli -> close(); ?>
в фильме пятого элемента спрашивает герой у девушки - "а покороче имя можно ?" --- Добавлено --- К чему я веду... ты пришел в цех, дают инструменты/место/назначение работникам, что должны выполнять чтобы получить бабло. Ты не работник.
Насколько я вас понял, мне надо вот эти строки PHP: $sql = "SELECT * FROM names where name = '".$search."'"; $result = mysqli_query($mysqli, $sql); заменить на эти? PHP: $sql = mysqli_query($mysqli, "SELECT * FROM names where name = '".$search."'")) { $result = mysqli_query($mysqli, $sql); Я извиняюсь, если туплю сильно, но прошу помочь, насколько понял по двум комментариям, то проблема только в mysqli_query или еще что то надо исправлять, кроме рук --- Добавлено --- И не работник, и не программист, поэтому выбран раздел "Сделайте за меня". По крайней мере с подключением к бд удалось разобраться самостоятельно, пугает всё остальное, что написано, так как не разбираюсь