我正在尝试将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();
}
?>
答案 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)