$search = _string($_POST['search_string']);
$sql = '
SELECT *
FROM `chat`
WHERE `user_id` IN (
SELECT `id`
FROM `users`
WHERE `login` LIKE "'.$search.'%"
)
ORDER BY `time`
DESC '; // делаем запрос отдельной строкой,
var_dump($sql);
//вставив в него переменную убеждаемся что там ерунда
//пишем нормально
$search = $_POST['search_string'].'%';
$sql = '
SELECT *
FROM `chat`
WHERE `user_id` IN (
SELECT `id`
FROM `users`
WHERE `login` LIKE ?
)
ORDER BY `time`
DESC ';
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s', $search);
$chat_result = $stmt->execute();
while ( $row = $chat_result->fetch_assoc() ) {
echo $row['user_id'].'<hr>';
}
Вот к примеру была функция check_category - вообще ничего не записывала:
$sql = "SELECT category_id,name FROM {$prefixTables}category_description WHERE name='".iconv('UTF-8', 'UTF-8', trim($str['category']))."'";
$res = $pdo->query($sql);
while($row = $res->fetch())
{
$category_id = $row['category_id'];
}
$id = $_GET['id'];
$_id = mysqli_real_escape_string($link, $id);
Ок, то что мы не умеем в подготовленные выражения вместо бредового "экранирования" пол беды, и даже не страшно что операцию так то можно в 1 строку прописать, но далее $name = $_POST['name'];
$age = $_POST['age'];
$salary = $_POST['salary'];
Ну типа, ид мы проверили, на этом наши полномочия все...Файл Update.php не выдает никаких ошибок после введения формы, но при этом данные не вносятся.
<?php
/* Вы должны включить отчёт об ошибках для mysqli, прежде чем пытаться установить соединение */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
/* Установите желаемую кодировку после установления соединения */
mysqli_set_charset($mysqli, 'utf8mb4');
printf("Успешно... %s\n", mysqli_get_host_info($mysqli));
После этого уже можно что-то смотреть, например что вернул print_r ($check);
... Искал решение, почти везде писалось одно и тоже - нужно выставить кодировку при создании базы, нужно вставить команды в конфиг mysql и тому подобное. Всё это у меня стоит, но помогло ток одно решение, а именно - выставлять кодировку при подключение к бд.Кодировку абсолютно правильно сказано - надо выставлять везде, так как во первых при переносе или изменении конфигурации софта все съедет на дефолтные настройки, которые везде разные. По этому и есть конфиги и настроечные переменные. Единственно кодировку соединения лучше поставить utf8mb4, так как это более современный и обратно совместимый формат.
UTF-8, выставляю с помощью - header('Content-Type: text/html; charset=UTF-8');Это можно спокойно вынести в конфиг php.ini, или добавить более универсальный код, не требующий руками каждый раз заголовки править:
ini_set('default_charset', 'utf-8');
Итак, в предыдущем вопросе я сделал блок try except в надежде, что оно восстановит мне соединение, но только что я обратился к боту и ошибка вернулась.Вам в прошлом ответе уже подсказали, что вы не имеете в итоге никакой ссылки на объект подключения, а тупо произвели некоторые действия, ака карго культ. На самом деле вам нужно полностью повторить код подключения в ексепшене, так как cursor у вас все равно остается пустой, а должен содержать ресурс соединения (или объект подключения, не помню как в питоне точно называется).
они приходят из TextBox. И я не понимаю как вместо их подставлять значения, они же в переменных хранятсяMySqlCommand принимает в конструктор строку, соответственно получаете строку конкатенацией переменных и вашего запрса, естественно значения надо вставлять в соответствующие места, где у вас сейчас вбиты заглушки.
Имеется проект на котором нужно реализовать БД MySQL.Че, прям написать MySQL с нуля?
Unable to connect to any of the specified MySQL hosts.Очевидно что нет подключения к бд. Во первых - скорее всего вы ее еще не написали же (шутка?), во вторых - вы проверили что мускуль запущен, через консоль к нему можно подключиться с данными, прописанными в коде подключения, и пользователь от имени которого запускается приложение имеет нужные права?
ну а если использовать между серверами 10гб/с канал?Вопрос не в ширине канала, а в накладных расходах протокола, все таки получать данные с той же машины, используя внутреннюю шину и использовать кабельное соединение между 2 машинами - очень разные вещи, но на самом деле конечно же гигантских задержек не будет, просто нужно учесть что они существуют, ну и что это еще +1 точка отказа.
судя по основной странице исходит до 140 запросов, из них тяжелых около 50Чет дофига, особенно плохо выглядит 50 тяжелых запросов. Все что можно желательно завернуть в редис или другой кэширующий сервис. В остальном вы так и не ответили сколько запросов в секунду реально идет к бд.
он добавляется и в первую и во вторую таблицу , как исправить чтобы добавлялся только во 2 ?во первых нормально организовать код, логика сверху, хтмл разметка снизу. в идеале все это разнести по шаблонам, но думаю для вас это что-то за гранью... во вторых нормально организовать проверки, у вас там 2 условия могут срабатывать при пост запросе, так как там тупо елс выполняется без проверки.
У меня сейчас имеется одна таблица для одного поста.Точно? Это на сайте будет один пост? Или под каждый пост будет таблица? Или все таки одна таблица для постов? (читать про нормальные формы бд, 1,2 и 3 НФ)
Но как лучше реализовать комментарии, чтобы была одна таблица, но там хранились комментарии из разных постов?Очень просто: Таблица, где будет поле post_id, которое будет указывать на пост, к которому относится комментарий. Если структура иерархическая, то еще parent_id, указывающий на какой комментарий это ответ. (Читать про отношения Один-ко-многим, хотя и про остальные тоже для общего развития. Ну и про иерархические структуры через nested sets)
понимаете, если будет много комментов, то долго будет обрабатываться. =/Понимаете, вы нихрена не разбираетесь в вопросе, но уже уверенно несете чушь про "будет долго обрабатываться", хотя точно этого не знаете (спойлер: не будет долго обрабатываться).