更新MySQL语句未触发

时间:2014-01-14 12:11:26

标签: php mysql

请注意,我使用以下cURL代码从其他页面调用此页面:

$chx = curl_init();
    curl_setopt($chx, CURLOPT_URL,"../php/giveactions.php");
    curl_setopt($chx, CURLOPT_POST, 1);
    curl_setopt($chx, CURLOPT_POSTFIELDS, "user=myname&actions=10&addy=DCGyHh6cy46ZYqwyy5PzMYLujLZVoPJVPE");
    curl_setopt($chx, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($chx, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($chx, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($chx, CURLOPT_SSLVERSION,3);
    $server_output = curl_exec($chx);
    curl_close ($chx);

我有一个PHP函数页面,其中包含以下代码:

<?
    require('db.php');

    $moreactions = 0;
    $totalActions = 0;

    if (isset($_POST["user"])) {
        $user_id = $_POST["user"];
    }
    if (isset($_POST["actions"])) {
        $moreactions = $_POST["actions"];
    }
    if (isset($_POST["addy"])) {
        $addy = $_POST["addy"];
    }

    $moreactions = round($moreactions / 10);

    $query = "SELECT * FROM `systems` WHERE `name` = '$user_id';" or die(mysql_error());
    $results = mysql_query($query);

    while($row = mysql_fetch_array($results)) {
        $actions = $row["actions"];
    }

    $totalActions = $actions + $moreactions;

    mysql_query("UPDATE `systems` SET actions=" . $totalActions . " WHERE `name` = '".$user_id."';") or die(mysql_error());

    echo "200ok";

    mysql_close();
?>

出于某种原因,我可以输出$totalActions罚款(完美计算等)。但使用Rest Post Client,当我在Web服务器上尝试它时,它会执行除UPDATE MySQL行之外的所有操作...

我为这个问题的模糊性道歉,我会根据评论/答案进行修改。

先谢谢chaps和chappesses

编辑:变量回显很好,MySQL查询也很好,所有变量设置正确

编辑2:注意&#34; 200ok&#34;在文件的末尾也回复得很好!

2 个答案:

答案 0 :(得分:0)

修复是cURL CURLOPT_URL需要是非相对的 所以http://www.blah.com/whatever.php代替/whatever.php

感谢所有人的帮助!

答案 1 :(得分:-1)

我想使用REST post客户端传输POST变量用户。

仅通过浏览器访问时,$ _POST [“user”]将不会被设置,因此UPDATE中的WHERE子句不匹配。