[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при попытке апдейта
Crater
Ну значит так. Есть БД. Из неё выхватываю ряд, преобразую его в массив. Далее пытаюсь проапдейтить одно из значений ряда. Собственно, вряд ли ситуация имеет значение. Ошибка Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in V:\home\test1.ru\www\index.php on line 63. Код 63 строки -
mysql> mysql_query("UPDATE users SET gold = ".$s.", lose = ".$loses + 1.", WHERE id = ".$_SESSION['id']."");




Спустя 5 минут, 3 секунды (22.10.2010 - 23:32) arvitaly написал(а):
mysql>



это чо такое

Спустя 1 час, 16 минут, 3 секунды (23.10.2010 - 00:48) kirik написал(а):
Crater
Я так понимаю нужно заключить строковые значения в апострофы.

Спустя 1 час, 30 минут, 4 секунды (23.10.2010 - 02:18) Crater написал(а):
arvitaly
ничего вредного для работы кода. пробовал ставить, убирать. никакой разницы. unsure.gif для удобства решил указывать.
kirik
вроде такого?
mysql> mysql_query("UPDATE users SET gold = '".$s."', lose = '".$loses + 1."', WHERE id = '".$_SESSION['id']."'");

пробовал с кавычками, апостофами, ещё-какими-то-косыми-кавычками наверное все комбинации до которых только мог дойти. может, что-то упустил, но такой вариант точно рассматривал.

Спустя 47 минут, 31 секунда (23.10.2010 - 03:06) kirik написал(а):
Crater
А зачем там запятая перед WHERE?

Спустя 7 часов, 28 минут, 47 секунд (23.10.2010 - 10:34) Crater написал(а):
Ой... чёрт её знает. Исправил, но лучше не стало. Снова поколдовал с апостофами - ничего. Ничего не понимаю, никогда ещё так не застревал...

Спустя 13 минут, 11 секунд (23.10.2010 - 10:48) Michael написал(а):
Вот это убери:
Цитата
mysql>

- чтоб мы знали что не в этом ошибка.
Выполни следующее:

$res = mysql_query("UPDATE users SET gold = '".$s."', lose = '".($loses + 1)."' WHERE id = '".$_SESSION['id']."'") or die(mysql_error());
if ($res) {
echo 'OK';
}

и скажи, что выдаст.

Спустя 2 минуты, 17 секунд (23.10.2010 - 10:50) Michael написал(а):
Тебе еще надо почитать про безопасность сайтостроения
- посмотри как в столбцы числового типа подставлять данные в запросе(не обрамляя кавычками '')

Спустя 46 минут, 47 секунд (23.10.2010 - 11:37) arvitaly написал(а):
Цитата
$res = mysql_query("UPDATE users SET gold = '".$s."', lose = '".($loses + 1)."' WHERE id = '".$_SESSION['id']."'") or die(mysql_error());
if ($res) {
  echo 'OK';
}


Проверка 2 раза одно и тоже, если уже or die, значит результ не false

Спустя 3 минуты, 43 секунды (23.10.2010 - 11:40) Michael написал(а):
Цитата (arvitaly @ 23.10.2010 - 10:37)
Цитата
$res = mysql_query("UPDATE users SET gold = '".$s."', lose = '".($loses + 1)."' WHERE id = '".$_SESSION['id']."'") or die(mysql_error());
if ($res) {
  echo 'OK';
}


Проверка 2 раза одно и тоже, если уже or die, значит результ не false

КО ? wink.gif
Я захотел, чтобы что то вывело("OK") при успехе, а не ничего не вывело. Это для отладки - understand ?

Спустя 8 минут, 15 секунд (23.10.2010 - 11:49) arvitaly написал(а):
Цитата
КО ? 
Я захотел, чтобы что то вывело("OK") при успехе, а не ничего не вывело. Это для отладки - understand ?


Зачем учить людей глупыми бессмысленными проверками?

Спустя 8 минут, 32 секунды (23.10.2010 - 11:57) Michael написал(а):
Цитата (arvitaly @ 23.10.2010 - 10:49)
Цитата
КО ?  
Я захотел, чтобы что то вывело("OK") при успехе, а не ничего не вывело. Это для отладки - understand ?


Зачем учить людей глупыми бессмысленными проверками?

А кто их учит? Я учитель что ли? Мы ищем ошибку в запросе, почему не работает.

Спустя 3 минуты, 1 секунда (23.10.2010 - 12:00) arvitaly написал(а):
Цитата
А кто их учит? Я учитель что ли? Мы ищем ошибку в запросе, почему не работает.


Блин, Michael, вы написали бессмысленную проверку, я указал на это, неужели трудно сказать ок и все

Спустя 4 минуты, 11 секунд (23.10.2010 - 12:04) Michael написал(а):
Цитата (arvitaly @ 23.10.2010 - 11:00)
Цитата
А кто их учит? Я учитель что ли? Мы ищем ошибку в запросе, почему не работает.


Блин, Michael, вы написали бессмысленную проверку, я указал на это, неужели трудно сказать ок и все

ну может тебе она и кажется бессмысленной - это же твои проблемы, верно?


Спустя 6 минут, 8 секунд (23.10.2010 - 12:11) twin написал(а):
Нормальная такая проверка... Мне вот тоже нравится, когда скрипт со мной разговаривает. Правда я пишу всякие "Ага!!! Проканал запрос!"
Чтобы не скчно было. smile.gif

Спустя 28 минут, 56 секунд (23.10.2010 - 12:39) arvitaly написал(а):
Crater,

Короче лучший вариант так, не слушайте всяких дяденек с ****************

<?php
$ob = ob_start();

var_dump( mysql_query("UPDATE users SET gold = '".$s."', lose = '".($loses + 1)."' WHERE id = '".$_SESSION['id']."'"));

$c = ob_get_contents();
ob_end_clean();

if ($c!='bool(false)')
{
echo 'Все прекрасно!';
}

echo 'А тут все еще лучше!';

Спустя 10 минут, 22 секунды (23.10.2010 - 12:50) Michael написал(а):
Цитата (arvitaly @ 23.10.2010 - 11:39)
Короче лучший вариант так, не слушайте всяких дяденек с оторванными проводами


отредактировано, т.к. пользователь arvitaly посчитал некорректным данное сообщение по отношению к своей персоне. Во внимание принято.

Спустя 1 час, 26 минут, 32 секунды (23.10.2010 - 14:16) arvitaly написал(а):

*** хны хны хны ***


 ! 

М
Изучай пункт правил 4.6
Michael

Спустя 8 часов, 52 минуты, 49 секунд (23.10.2010 - 23:09) Crater написал(а):
Michael, ошибка точно не в mysql>, пробовал уже. Взял твой код. С арифметикой в php я как-то не в ладах, пропустил её, скобочки почему-то поставить не догадался. Либо ошибка была в этом либо... хм, ну либо в mysql>
аrvitaly тоже действует. В прошлом коде была небольшая загвоздка с выводом (или это я такой дубень), тут нормально вроде.
Теперь всё работает. На счёт безопасности согласен, пока не предусмотрел даже банальных мер. До сих пор в разработке исключительно механика. Но ссылку изучу обязательно. Спасибо всем!

P.S. И спор что-то не очень понимаю. Понадобится вывести работает или нет - уж это организовать как-нибудь смог бы сам, загвоздка была в строке самой. Спасибо ещё раз за помощь.


_____________
Цитата
Я не потерпел неудачу. Я просто нашел десять тысяч способов, которые не работают.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.