2015-01-23 2 views
0

Как обновить две несвязанные таблицы mysql с помощью php-скрипта? Я использую что-то вроде этого. Если я использую два разных оператора $ sql, например $ sql1 $ sql2, он не работает.Как обновить две несвязанные таблицы mysql с помощью php-скрипта?

// mysql update row with matched pid 
    $result1 = mysql_query("UPDATE users SET users.p = users.p - '$p', users.n = users.n -'$n' WHERE users.uid = $uid"); 
    $result2 = mysql_query("UPDATE names SET names.p = names.p + '$p', names.n = names.n + '$n' WHERE names.p_id = $p_id"); 
    // check if row inserted or not 
    if ($result1 && $result2) 
    { 
     // successfully updated 
     $response["success"] = 1; 
     $response["message"] = "successfully updated."; 

     // echoing JSON response 
     echo json_encode($response); 
    } 
+2

Что Безразлично Работа? Любые ошибки? Работает ли, а не другой? Я предполагаю, что вы фактически создали ваше соединение с db. – Lance

+0

Да, соединение в порядке, оба не работают, я читал, что я должен использовать транзакцию ?! как я могу использовать его здесь? –

+0

http://stackoverflow.com/questions/2708237/php-mysql-transactions-examples – Lance

ответ

0

первое использование users.p - $p вместо users.p - '$p' второй возвращаемая ошибка MySQL при возникновении

$p= intval($_POST['p']); 
$n= intval($_POST['n']); 

синтаксического анализа данных, как выше

<?php 
// mysql update row with matched pid 
$result1 = mysql_query("UPDATE users SET users.p = users.p - $p, users.n = users.n -$n WHERE users.uid = $uid"); 
$result2 = mysql_query("UPDATE names SET names.p = names.p + $p, names.n = names.n + $n WHERE names.p_id = $p_id"); 
// check if row inserted or not 
if ($result1 && $result2) { 
    // successfully updated 
    $response["success"] = 1; 
    $response["message"] = "successfully updated."; 

    // echoing JSON response 
    echo json_encode($response); 
} else { 

    // failed update 
    $response["success"] = 0; 
    $response["message"] = "Mysql error is : " . mysql_error(); 

    // echoing JSON response 
    echo json_encode($response); 
} 
?> 
+0

Не обновляя ни одну таблицу, в android logcat переданные параметры выглядят так: 01-23 12: 32: 15.771: D/Params Values ​​(20812): [p_id = 3, p = 0, n = 1] Я использую utf8 как разбор, но я получаю JSONException: Конец ввода в символе 0 из –

+0

Это означает, что mysql сгенерирует ошибку, вы найдете его в своем указателе сообщений переменной ответа, где успех будет 0 –

+0

Это сработало спасибо Я просто echo json_encode ($ response, JSON_UNESCAPED_UNICODE); в конце –

0

Вы вычитаете строку из строки ??? users.p = users.p - '$ р'

+0

Я хочу вычесть целое число из опубликованного параметра (это строка hmm) в android Как я могу преобразовать в целое число для вычитания? –

+0

Вам нужно больше информации. Пожалуйста, дайте мне больше кода. –

Смежные вопросы