Получилась такая интересная ситуация, вот код - Код (PHP): $result = mysqli_query($mysqli, "SELECT id FROM b_proxy WHERE key = ".$key.""); $row = mysqli_fetch_assoc($result); и есть бд, в ней есть 3 таблицы, мне нужна b_proxy, но когда использую таблицу b_proxy , то выводит ошибку, что mysqli_fetch_assoc - ожидает 1 парметр, а если использую остальные 2 таблицы,то все просто замечательно) Вот бд - Вот) Структура одинаковая, помогите пожалуйста)
bool(false) Каких ковычек? пишу так все работет - Код (PHP): $result = mysqli_query($mysqli, "SELECT id FROM men WHERE rost = ".$key.""); $row = mysqli_fetch_assoc($result); а так нет Код (PHP): $result = mysqli_query($mysqli, "SELECT id FROM b_proxy WHERE key = ".$key.""); $row = mysqli_fetch_assoc($result);
Каких ковычек? пишу так все работет - Код (PHP): $result = mysqli_query($mysqli, "SELECT id FROM men WHERE rost = '$key'"); $row = mysqli_fetch_assoc($result);
mysqli_query вернула false, по документации это означает что произошла ошибка, есть функции которые могут о них сообщить, почитай. https://php.net/manual/ru/mysqli.error.php ты передал boolean в mysqli_fetch_assoc вместо ресурса который по документации ожидает mysqli_fetch_assoc. так что тебе учить основы опять нужно
вывело - Errormessage: Unknown system variable 'a' либо я не понял как сделать. А почему код с другой таблицей работает нормально? хотя они идентичны
energy455 ты что-то делаешь на столько не правильно, что даже не можешь показать полный текст ошибки, по которому обычно можно узнать её причину. Но если включить логику и посмотреть документацию по mysqli_query, то мы увидим примеры как пользоваться функцией и обрабатывать ошибки если они происходят. Хотя возможно проблема в другом, ты же не пишешь полный текст ошибки. Вот почитай как делать отладку http://phpfaq.ru/debug
Хз что ты передаешь но раз тип поля varchar значит база ожидает строку, строка должна быть в кавычках. Хз как ты пишешь, но предположу копируешь и не думаешь https://php.net/manual/ru/mysqli.error.php Добавлено спустя 1 минуту 9 секунд: нормально скопируй
Ребят сорри, вот ошибка- Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
mysqli_error что показывает, нам ошибка mysql а не php нужна кавычки пробовал? Там больше не в чем ошибиться
Уже ближе, но нужно ещё полнее! Что я и угадывал, ты передал в mysqli_fetch_assoc первым параметром переменную с типом boolean, а по документации функция ожидает resource от mysqli_result, а mysqli_result вернула boolean false так как произошла ошибка при выполнении mysqli_result. Посмотреть что за ошибка можно посмотреть через https://php.net/manual/ru/mysqli.error.php
вот еще ошибка You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key = 157' at line 1 key- может быть таким - "1545dsadF545", и цифры и буквы
Сделай echo "SELECT id FROM b_proxy WHERE key = ".$key.""; Я предположу, что ошибка из-за того, что ты не обрамил значение key в кавычки, вот так: `key` = '1545dsadF545'
Этот запрос работает в PHPMyAdmin например? Значения нужно ещё экранировать, чтобы не было уязвимости sql-injection https://php.net/manual/ru/mysqli.real-escape-string.php
вот так я фильтрую - Код (PHP): $key = htmlspecialchars($_POST['key']) & strip_tags($_POST['key']); может тут ошибка?
Это не "Магия с бд Mysqli", а глюк в мозгах разраба . Бывает... (кстати, бд "Mysqli" не существует) ошибка здесь: "SELECT id FROM b_proxy WHERE key = ".$key."" "SELECT id FROM b_proxy WHERE key = ".'бла-бла-бла'."" == 'SELECT id FROM b_proxy WHERE key = бла-бла-бла'; надеюсь, сами догадаетесь в чём ошибка
energy455 ну фильтруй, а уязвимость остаётся. Сравни два этих запроса твой SELECT id FROM b_proxy WHERE key = 765 как надо SELECT `id` FROM `b_proxy` WHERE `key` = '765' и ещё 765 обработать mysqli_real_escape_string
"Чукча не читатель - Чукча писатель" (с) народная мудрость Бывает, клинит. Каждый из нас изредка страдает. Главное чтобы до хронического не доросло.
экранировал перменую кей, сделал так - Код (PHP): $result = mysqli_query($mysqli, 'SELECT id FROM b_proxy WHERE key = ".'$key'." '); Теперь ошибка - Parse error: syntax error, unexpected T_VARIABLE )