@themailvnk

Где ошибка в коде?

Здравствуйте, пытаюсь сделать проверку на существование такого же поля в базе данных как и из формы, вроде правильно, но ошибку найти не могу:
<?

require_once('../settings/config.php');

if (isset($_POST['title_site'])) {$title_site =  mysql_real_escape_string(strip_tags(trim(ucfirst($_POST['title_site']))));}

if (isset($_POST['url_site'])) {$url_site = mysql_real_escape_string(strip_tags(trim($_POST['url_site'])));}

if (isset($_POST['desc_site'])) {$desc_site = mysql_real_escape_string(strip_tags(ucfirst($_POST['desc_site'])));}

if (isset($_POST['date_add'])) {$date_add = mysql_real_escape_string(strip_tags(trim(ucfirst($_POST['date_add']))));}

$date_add = date_default_timezone_set('UTC');

if(strpos($url_site,'http://') === false) {

    $url_site = 'http://' . $url_site.'/';

}

if (!mysql_query("SELECT 'title', 'link', 'description', 'date' FROM ".$db_prefix."sites WHERE link ='$url_site'") {
  mysql_query("INSERT INTO ".$db_prefix."sites (title, link, description, date) VALUES ('$title_site', '$url_site', '$desc_site', '$date_add')");
  echo '1';}
   else {
  echo '0';
}


?>
  • Вопрос задан
  • 2640 просмотров
Пригласить эксперта
Ответы на вопрос 5
lexxpavlov
@lexxpavlov
Программист, преподаватель
if (!mysql_query("SELECT ...") {
функция mysql_query возвращает не результат, а ресурс - указатель на результат, который нужно передать в одну из функций mysql_fetch_* или mysql_result. Ресурс приравнивается к true, и условие всегда ложно.
А вообще, не используйте больше функции mysql_* - они устарели и скоро будут удалены из php. Используйте PDO или mysqli. Почитайте вот это для подробных объяснений.
Ответ написан
TiGR
@TiGR
1. Скрипт ничего не выведет, если произойдёт любая ошибка в первом запросе. Попробуйте добавить обработку ошибок, добавив конструкцию else и воспользовавшись функциями mysql_error и mysql_errno.
2. Имена полей экранируются при помощи backtick (`), а не апострофа.
3. Если вы пишите новый код, не используйте устаревшие части php. В частности модуль mysql заменён mysqli и в новых версиях php не поддерживается.
Ответ написан
Комментировать
@SashaSkot
Специалист широкого профиля
Во первых - можно упростить проверку существующего значения до SELECT 1 FROM table where field = value.
Во вторых - о какой ошибке идет речь?:)
Ответ написан
@carryx
MySQL Developer
mysql_query - deprecated уже давно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы