从定制的php函数中读取和写入MySQL

时间:2015-10-30 03:22:17

标签: php mysql pdo

我尝试创建一个函数,在调用时,从DB中选择值,将它们相加,然后再将总数重新插入到DB中。以下是我到目前为止的情况:

function doAddup01() {
    try {
        $stmt = $conn->prepare("SELECT `number1`, `number2`, `number3` FROM $database.tablename WHERE `id` = :id");
        $stmt->bindParam(':id', $caseID, PDO::PARAM_INT, 11);
        $stmt->execute();
        $result01 = $stmt->fetchAll();

        // Add up all the relevant fields
        $tot = $result01[0]['number1'] + $result01[0]['number2'] + $result01[0]['number3'];
        // Write the totalled value to the DB

        $stmt = $conn->prepare("UPDATE $database.tablename SET `totalVal` = :data WHERE `id` = :id");
        $stmt->bindParam(':data', $tot, PDO::PARAM_STR, 12);
        $stmt->bindParam(':id', $caseID, PDO::PARAM_INT, 11);
        $stmt->execute();
    } catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
    // Echo out the tallied result
    $report_name['total'] = num($tot);
    echo json_encode($report_name);
}

num函数只是将数字格式化为逗号分隔的增量,如1000变为1,000。

我收到错误:


注意:未定义的变量: /var/www/path/file.php 中的conn 24

致命错误:在 / b> / >

第24行是行:

            $stmt = $conn->prepare("SELECT `number1`, `number2`, `number3` FROM $database.tablename WHERE `id` = :id');

我不知道为什么会发生这种情况,从我读过的内容我应该能够在一个函数中执行此操作。我之前没有尝试过访问自定义函数中的数据库,所以欢迎提供帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您无法在此处访问全局变量。要访问它们,请使用

function doAddup01() {
     global $conn;