将print_r输出插入数据库?

时间:2011-07-07 12:50:49

标签: php mysql arrays

我正在尝试将print_r输出插入数据库?

在数据库中,结果为1

如何解决这个问题?

<?php
    processLog(print_r($dataArray));

    function processLog($text) {
        global $process, $db, $groupID;

        print($text . "\n");

        $SQL = "INSERT INTO enable_log (process_id, process_date, group_id,  log_output, log_time)
               VALUES(:process_id, :process_date, :group_id, :log_output, now())";

        $q = $db->prepare($SQL);
        $q->bindValue(":process_id", $process['pid']);
        $q->bindValue(":process_date", $process['date']);
        $q->bindValue(":group_id", $groupID);
        $q->bindValue(":log_output", $text);
        $q->execute();
    }
?>

3 个答案:

答案 0 :(得分:4)

将true作为print_r的第二个参数传递:

$a = print_r($var, true);

print_r($var)的输出存储到$ a;

在你的例子中:

$q->bindValue(":log_output", print_r($text, true));

答案 1 :(得分:4)

我建议使用serialize()而不是存储print_r()的输出(您可以使用@xzyfer的答案),以便PHP可以将字符串反转回正确的数组中需要将其从数据库中拉回来。

processLog(serialize($dataArray));

答案 2 :(得分:2)

如果将返回参数传递给print_r,则可以使用结果而不是打印出来

$result = print_r($text, true);

$ result现在将包含之前输出的内容。

请参阅手册here

相关问题