2017-10-11 118 views
-2

mysql表中有一個變量$name。該變量包含網站的名稱。如何從mysql數據庫輸出一個php變量?

我該如何顯示它,以便顯示此變量的值?當我嘗試輸出時,變量顯示爲純文本。

如果我試圖把它們放在括號作爲替代輸出,它會產生一個錯誤:

Notice: Undefined variable.

這裏是我的代碼:

$db=mysqli_connect('127.0.0.1', 'root', '', 'demo'); 
mysqli_query($db, "SET NAMES 'utf8'"); 
$tb_var=mysqli_query($db, "SELECT * FROM var"); 
$var=mysqli_fetch_assoc($tb_var); 
echo ${$var['name']}; 

MySQL代碼:

INSERT INTO `var` (`id`, `name`) VALUES (NULL, 'My site name $name'); 
+0

注:面向對象與'mysqli'的接口明顯較少,使代碼更易於閱讀和審計,而不是e與陳舊的'mysql_query'接口混淆。在你過於投入程序風格之前,它是值得轉換的。例如:'$ db = new mysqli(...)'和'$ db-> prepare(「...」)過程接口是PHP4時代的一個神器,當引入mysqli API時,不應該在新的碼。 – tadman

回答

0

你不只有一個變量。您希望將文本作爲PHP雙引號字符串文本進行處理,該文本足夠接近將外部輸入評估爲需要擔心的代碼。

您可能想要切換到好老...printf()格式代碼:

INSERT INTO `var` (`id`, `name`) VALUES (NULL, 'My site name %s'); 
printf($var['name'], 'Acme Corporate Site'); 

而且,如果HTML中的上下文:

echo htmlspecialchars(sprintf($var['name'], 'Acme Corporate Site')); 

Online demo