Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: PHP выполнение sql запроса при определенном POST  (Прочитано 2138 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Кровавый

  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Yurror,
собвственно причем тут mysql? запрос то верный и работает.


Знаете, что такое трассировка?
По 1 на строку вставьте в скрипт:
Код: (php) [Выделить]
$test = 1;
...
echo $test++;


А так же сделайте после получения переменных:
Код: (php) [Выделить]
print("INSERT INTO `".$config->db_prefix."_list` (`nick`,`pwd`,`name`) VALUES ('".$nick."', '".$pwd."', '".$name."')");Вот потом мы вам скажем, верный у вас запрос или нет!

Пользователь решил продолжить мысль 07 Июня 2013, 16:49:45:
Да, это и для профилактики пригодится.  :P
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн nextdrift

  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Предлагаю несколько вариантов

изменить

$_POST['age'] == "18" на trim($_POST['age']) == "18"

либо

$_POST['age'] == "18" на (int)$_POST['age'] == 18

либо

где-то вначале, до условий сделать $age = (int)$_POST['age']
а в условии $age == 18

Оффлайн MuadDlb

  • Участник
  • *
  • Сообщений: 147
  • The Dune Messiah
    • Просмотр профиля
<?php
if(!empty($_POST['id']))
  {
  $id= mysql_real_escape_string(trim($_POST['id']));
  $nick = mysql_real_escape_string(trim($_POST['nick']));
  $pwd = mysql_real_escape_string(trim($_POST['pwd']));
  $name = mysql_real_escape_string(trim($_POST['name']));
  $age = mysql_real_escape_string(trim($_POST['age']));

  $query = mysql_query('UPDATE '.$config->db_prefix.'_info SET nick = "'.$nick.'",
                                                               pwd = "'.$pwd.'",
                                                               name = "'.$name.'" ,
                                                               age = "'.$age.'"
                                                           WHERE id = "'.$id.'"') or die (mysql_error());

  if ($age==18)
    {
    $query = mysql_query('INSERT INTO '.$config->db_prefix.'_list (nick, pwd, name)
                                                             VALUES ("'.$nick.'", "'.$pwd.'", "'.$name.'")') or die (mysql_error());
    }
  }
?>
используйте двойные кавычки внутри одинарных а не наоборот, пхп парсит строку с двойными кавычками.
Зачем присваивать элементы массива $_POST одноименным переменным? используйте напрямую.
Крайне не советую использовать mysql: пользуйте параметризованные запросы mysqli или pdo. Потеряете чуток производительности но зато отделите данные от запроса.
Крайне не советую использовать переменную как префикс бд, преобразуйте в константу.
По синтаксису вроде все верно

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.