Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: UPDATE не производит эффекта [2]
Форумы портала PHP.SU » » Вопросы новичков » UPDATE не производит эффекта

Страниц (2): « 1 [2]
 

16. tuareg - 26 Февраля, 2012 - 14:24:04 - перейти к сообщению
DelphinPRO пишет:
проблема здесь SET Donate=Donate+9 WHERE ID=4)
нужно уточнить , поддерживает ли мускул такое присвоение значений. (Donate+9)

Поддерживает он, по крайней мере MySQL>5.0 точно.
17. DelphinPRO - 26 Февраля, 2012 - 14:26:12 - перейти к сообщению
да

попробуйте
PHP:
скопировать код в буфер обмена
  1. $link_db = MYSQL_CONNECT($hostname,$username,$password)
  2.  OR DIE("Не могу создать соединение ");
  3. mysql_select_db($dbName, $link_db);
  4. mysql_query("Запрос", $link_db);


т.е. передавайте в функции идентификатор соединения с нужной вам БД.
(Добавление)
tuareg пишет:
Поддерживает он, по крайней мере MySQL>5.0 точно.

да, проверил в PMA - так можно делать.
18. Arad - 26 Февраля, 2012 - 14:41:41 - перейти к сообщению
DelphinPRO пишет:
да

попробуйте
PHP:
скопировать код в буфер обмена
  1. $link_db = MYSQL_CONNECT($hostname,$username,$password)
  2.  OR DIE("Не могу создать соединение ");
  3. mysql_select_db($dbName, $link_db);
  4. mysql_query("Запрос", $link_db);


Нет,не получается и так записать.
(Добавление)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
19. Arad - 26 Февраля, 2012 - 18:44:12 - перейти к сообщению
Может быть проблема не в запросе?
Ещё раз отправлю скрипт:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once ('parse.inc.php');
  3.  
  4. $q = $_POST;
  5.  
  6. $params = _yusoft_parse($q);
  7.  
  8. $hostname = "****";
  9. $username = "****";
  10. $password = "*****";
  11. $dbName = "user_arad";
  12. $userstable = "Accounts1";
  13.  
  14. $test1 = $params['partner_income'];
  15. $test2 = $params['name'];
  16.  
  17. if ($params['check']) {
  18.  
  19.   // Действия по зачислению платежа. A1Lite - Ключи совпали.
  20.         $link_db = MYSQL_CONNECT($hostname,$username,$password)
  21.  OR DIE("Не могу создать соединение ");
  22. mysql_select_db($dbName, $link_db);
  23. mysql_query("UPDATE Accounts1 SET Donate=Donate+".(int)$test1." WHERE ID=".(int)$test2."", $link_db);
  24. }
  25. else {
  26.  
  27.   // Действия по ошибке. A1Lite - Ключи не совпали.
  28.  
  29.   $message  = 'Платеж не принят!';
  30.  
  31.  
  32. }
  33.  
  34. jimport('joomla.error.log');
  35. $log =& JLog::getInstance();
  36. $log->addEntry(array('comment' => $message, 'status' => 0));
  37.  
  38. ?>
20. Arad - 26 Февраля, 2012 - 20:55:34 - перейти к сообщению
Вывел запрос на экран
PHP:
скопировать код в буфер обмена
  1.  
  2.  echo "UPDATE Accounts1 SET Donate=Donate+" .(int) $test1 . " WHERE ID=" .(int) $test2 ;
  3.  

Выводит: UPDATE Accounts1 SET
Donate=Donate+50 WHERE ID=4

Все правильно,но в базу не записывает.Значит проблема не в запросе?
21. nkl - 26 Февраля, 2012 - 21:09:05 - перейти к сообщению
в myadmin запрос проверь, если работает, значит все норм, причина в другом
22. Arad - 26 Февраля, 2012 - 21:24:29 - перейти к сообщению
nkl пишет:
в myadmin запрос проверь, если работает, значит все норм, причина в другом

В Pma успешно выполняется
23. Arad - 27 Февраля, 2012 - 17:19:09 - перейти к сообщению
Вывел
PHP:
скопировать код в буфер обмена
  1. echo '<pre>' . print_r($params, 1) . '</pre>';

Вот что выдало:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <pre>Array
  2. (
  3.     [tid] => 1297249736
  4.     [name] => 4
  5.     [comment] =>
  6.     [partner_id] => 187471
  7.     [service_id] => 34263
  8.     [order_id] => 1
  9.     [type] => ym
  10.     [partner_income] => 10
  11.     [system_income] => 10
  12.     [check] =>
  13.     [email] =>
  14.     [phone_number] =>
  15. )
  16. </pre>

Судя по распечатке массива не выполняется условие
PHP:
скопировать код в буфер обмена
  1. [if ($params['check'])

Почему то выполняется ветка
PHP:
скопировать код в буфер обмена
  1. else {
  2.  
  3.   // Действия по ошибке. A1Lite - Ключи не совпали.
  4.  
  5.   $message  = 'Платеж не принят!';
  6.  
  7.  
  8. }

Как это можно исправить?

 

Powered by ExBB FM 1.0 RC1