Mysql没有更新数据库中的记录

时间:2015-10-02 08:45:56

标签: php mysql

请帮忙,因为我有问题。 我有一个回调脚本,另一个网站正在向我发送一些数据,而mysql没有更新记录。我还没有介意保护我的代码,因为在这个测试阶段它并不重要。我的代码是:

    $dbhost = 'localhost';
    $dbuser = 'user';
    $dbpass = 'pass';

    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

    $dbname = 'dbname';
    mysql_select_db($dbname);
    $postData = $_POST; //GET ALL POST DATA 

    //GET ALL DATA FROM POST AND PREPARE IT FOR SQL
    $mId = $postData['id'];
    $mDone = date('Y-m-d H:i:s',$postData['donedate']);
    $mStatus = $postData['status'];
    $mText = $postData['txtstatus'];
    if ($mText == 'DELIVRD')
        $mText = 'DELIVERED'; //Correction of test status
    $mPhone = $postData['receiver'];

    //ADD TO DB
    if ($postData['type'] == 1){ //success
        $sql = mysql_query("UPDATE message_details SET doneDate='$mDone', status='$mText' WHERE contact='$mPhone' AND msgId='$mId'");
       echo "UPDATE message_details SET doneDate='$mDone', status='$mText' WHERE contact='$mPhone' AND msgId='$mId'"
    }elseif ($postData['type'] == 2) {//FAILED
        $sql = mysql_query("UPDATE message_details SET doneDate='$mDone', status='FAILED' WHERE contact='$mPhone' AND msgId='$mId'");
echo "UPDATE message_details SET doneDate='$mDone', status='FAILED' WHERE contact='$mPhone' AND msgId='$mId'"
    }

回应mysql查询,然后在我的数据库中运行它手册,工作正常。我每秒大约有10个请求。 为什么在此代码运行时它不起作用

由于

编辑: 我在代码中添加了这一行: file_put_contents(' errors.txt',mysql_error($ conn)。' \ n',FILE_APPEND); 并且回报是:

  

\ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n

所以mysql没有错误

1 个答案:

答案 0 :(得分:0)

如果查询是正确的,正如您所说的那样是因为您独立运行它,那么它必须是具有错误的connect或select数据库。您需要养成测试数据库访问调用结果的习惯。

由于我假设此代码没有关联的浏览器页面,因此您需要检查错误并将错误代码发送到您可以看到的地方,例如这样的内容。或定期检查标准服务器日志是否有错误。

$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';

$conn = mysql_connect($dbhost, $dbuser, $dbpass)
if ( ! $conn ) {
    file_put_contents('admin_error.log', 
                      mysql_error() . "\n", 
                      FILE_APPEND);
    exit;
}

$dbname = 'dbname';
if ( ! mysql_select_db($dbname) ) {
    file_put_contents('admin_error.log', 
                      mysql_error() . "\n",
                      FILE_APPEND);
    exit;
}

当然这里有标准警告:

  

您不应该使用mysql_数据库访问扩展来获取新代码。它已被弃用多年,并将于2015年底在PHP7中完全消失。而是使用mysqli_PDO扩展名。 See this post to help in that decision如果没有别的东西可以读得很好。

相关问题