2016-08-19 120 views
0

我需要從ECHO運行PHP腳本。 通常,來自數據庫的輸出是文本,但有時候也有內部的php代碼。 ['content']在我的數據庫中被定義爲LONGBLOB。 如何讓它一起工作?

function data_page ($dbc, $pageid){ 

    $q = "SELECT * FROM page WHERE id = $pageid"; 
    $r = mysqli_query($dbc, $q); 

    $data = mysqli_fetch_assoc($r); 

    return $data; 
} 

$page=data_page($dbc,$pageid); 

<?php echo $page['content'];?> 

content可以包含例如該代碼<?php echo date('Y');?>

+0

爲什麼要儲存','在數據庫 ?爲什麼不直接在PHP文件中調用需要的地方?或者使用SQL來獲取日期。 – nerdlyist

+0

爲什麼你在PHP中使用'echo $ page'? ''您已經處於PHP模式。如果我明白這個問題,你只想在文本中回顯結果,但是當它是PHP代碼時,你想要對結果做什麼? – BeetleJuice

+0

'eval('?>'。$ page ['content']);' – AbraCadaver

回答

0

我知道PHP將讓這種情況發生的原因,爲什麼不。我只是顯示這個,因爲是的,它可以完成。你應該考慮一下。您可以輕鬆從SQL獲取信息。我不確定你在數據庫中還有什麼,但是這在大多數情況下都可以使用。

您需要清理字符串。在現有的塊內不能有另一個<?php ?>塊。所以在DB的字符串應該是echo date('Y');

然後在你的代碼,你可以調用這個:

<?php 
function data_page ($dbc, $pageid){ 

    $q = "SELECT * FROM page WHERE id = $pageid"; 
    $r = mysqli_query($dbc, $q); 

    $data = mysqli_fetch_assoc($r); 

    return $data; 
} 

$page=data_page($dbc,$pageid); 

eval($page['content']); 

?>