Неполадка в MySQL запросе.

Статус
В этой теме нельзя размещать новые ответы.

imedia

Создатель
Регистрация
22 Фев 2012
Сообщения
28
Реакции
0
Делаю скрипт платежной системы не могу реализовать проверку баланса
PHP:
$custombalance = mysql_query("SELECT 'login', 'balance' FROM 'users' WHERE ;");

Надо смотреть баланс по логину:
PHP:
$custombalance = mysql_query("SELECT 'login', 'balance' FROM 'users' WHERE login='$login';");

Дмал так пойдет, но не идет...

С MySQL я на Вы еще пока, что.
Помогите пожалуйста.
 
С этим сам разобрался а с этим как?
PHP:
$price = $_POST['price'];
$custombalance = mysql_query("SELECT balance FROM users WHERE login='$login';");
$balance = $custombalance - $price;
$sql = "UPDATE users SET `balance` = \'$balance\' WHERE `users`.`login` = \'$login\' LIMIT 1;";

А здесь что не так?
 
для начала синтаксис у вас ни в п... ни в красную армию....
PHP:
$price = $_POST['price'];
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
$balance = $custombalance - $price;
$sql = "UPDATE users SET `balance` = '".$balance."' WHERE `login` = '".$login."'";
название таблицы и лимит не нужны, по логике вещей поле login должно быть уникальным!
кроме того, скрипт можно сократить убрав лишнее действие:
PHP:
$price = $_POST['price'];
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
if($custombalance>=$price){
$sql = "UPDATE users SET `balance` = `balance`-'". $price ."' WHERE `login` = '".$login."'";}
 
по правилам хорошего тома в подобных ситуациях надо приводить текст ошибки.

по поводу запроса:
зачем \'$balance\' ? хватит просто $balance (он же у вас цифровой)
\'$login\' - опять хрень. надо просто '$login'
LIMIT 1; - это пожалуй лишнее
 
Так Вот:
PHP:
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
if($custombalance>=$price){
$sql = "UPDATE users SET `balance` = `balance`-'". $price ."' WHERE `login` = '".$login."'";
mysql_query($sql);}
 
Если смотреть на первые посты, тут как минимум потенциальная sql-инъекции

PHP:
$price = $_POST['price'];
$custombalance = mysql_query("SELECT balance FROM users WHERE `login`='".$login."';");
if($custombalance>=$price){
$sql = "UPDATE users SET `balance` = `balance`-'". $price ."' WHERE `login` = '".$login."'";
}

Подставлю я вместо price " '; DELETE FROM users WHERE 1 = '1 " и выйдет
SELECT balance FROM users WHERE `login`=''; DELETE FROM users WHERE 1 = '1';

Думаю, о результатах запрос говорить не надо!:)
 
Для просмотра ссылки Войди или Зарегистрируйся
Снова заказ на 100500$ !?
Помнится была темка даже коммент не потерли :D
А на счет того что с mysql проблемы так вы маны почитайте... Иначе так и будите постоянно по мелочам на форумах сидеть.

Да и подумайте немного... Вы разрабатываете систему работающую с деньгами !!! И если у вас столь банальные вопросы то о том как защитить все это у вас и вопроса не появится. ИМХО Брости вы это гиблое дело !
 
Dino - нет. Деньги не списывает.

---_demon - с защитой все нормально WINDOWS SERVER я нормально администрирую и DEBIAN тоже.
 
WINDOWS SERVER я нормально администрирую и DEBIAN тоже.
:eek:

Я вам говорю для того что бы приготовить амлет нужно уметь жарить яйца!
А вы мне я умею делать масло и сковородки!

Либо я чего то в этой жизни не вкуриваю... Или перекуриваю :nezn:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху