PHP Easy mysql query if-statement

Мой код:

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = '2'");
if (!$result) {
die("Tribe Error");
}

В этом коде все пользовательские племена получают ошибку. Но я хочу, чтобы только «2» племя получило ошибку. Что не так в этом коде?

Спасибо.

EDIT: Пожалуйста, отредактируйте мой код, что не так.

0
nl ja de
@ user1951205: Mark означает, что вы не должны использовать команды mysql_ *, но инструменты PDO или mysqli вместо этого запрашивают вашу базу данных mMySQL. Команды mysql_ * устарели уже некоторое время.
добавлено автор xlecoustillier, источник
Не используйте MySQL, используйте MySQLi или PDO с подготовленными операторами
добавлено автор Mark Baker, источник
Что такое TB_PREFIX?
добавлено автор dokaspar, источник
@ user1951205 Для будущих пользователей, которые видят ваши вопросы. Если вы это знаете, отлично! Пожалуйста, не используйте функции MySQL _ * в новом коде . Они больше не поддерживаются, и на нем начался процесс отмены. См. красный ящик ? Подробнее о подготовленных операторах и используйте PDO или MySQLi - эта статья поможет вам решить, какой именно. Если вы выберете PDO, вот хороший учебник .
добавлено автор Jeremy1026, источник
PDO и mysqli - это более современные и безопасные интерфейсы для работы с MySQL. mysql_query будет устаревшим в ближайшем будущем.
добавлено автор Alexander Taver, источник
Зачем? Моя база данных MySQL ...
добавлено автор user1951205, источник
мой TB_PREFIX tr и этот код tr1_users. Кто может редактировать мой код?
добавлено автор user1951205, источник

3 ответы

Вы проверяете, возвращал ли запрос ошибку, а не если запрос возвращал строки 1 (или более ...), которые, вероятно, вы хотите. Запрос, возвращающий 0 строк, по-прежнему является корректным запросом.

Кроме того, вы должны переключиться на PDO (или mysqli) и подготовленные операторы с связанными переменными.

В PDO вы, вероятно, можете получить количество возвращенных строк rowCount() , ознакомьтесь с руководством для получения дополнительной информации о том, как переписать код в PDO.

0
добавлено
Можете ли вы изменить мой код?
добавлено автор user1951205, источник

I found this for you : http://php.net/manual/en/mysqli.query.php

Здесь вы можете узнать, как использовать mysqli

И код здесь, вы можете настроить свой собственный

РЕДАКТИРОВАТЬ: это не правильный путь, но попробуйте это

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2");
$fetch = mysql_fetch_assoc($result);
if (count($fetch)<1) {
if (!$result) {
die("Tribe Error");
}
else{
var_dump($fetch);
}
0
добавлено
это твой столб племени типа int? или nvarchar?
добавлено автор apero, источник
там вы ошибетесь, вероятно, что вы сравниваете строку с int, thats uniqueible см. EDIT
добавлено автор apero, источник
Я не могу сказать, что хочу ... Извините, мой плохой английский, но я хочу, только если пользовательское племя 2 получит ошибку ... Не нужно mysqli
добавлено автор user1951205, источник
Столбцы племени -> tinyint (1)
добавлено автор user1951205, источник
Я пробовал ваш код, но теперь все племена видят пустую страницу.
добавлено автор user1951205, источник

Mysqli на официальном сайте PHP

Измените приведенный ниже код в соответствии с вашими требованиями.

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2") or die(mysql_error());
$fetch = mysql_num_rows($result);
if ($fetch > 0) {
    while($dets = mysql_fetch_assoc($result)){
        //displaying all info about current record
        var_dump($dets);
    }
}
else
    echo "No records";
0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp