2012-07-19 76 views
-1

你好,我有一個花崗岩PHP功能,但想打印我自己的文本,它存儲在一邊變量和我自己的顏色,這也存儲在邊變量用顏色添加一個變量到一個函數中?

這就是代碼看起來應該如何輸入變量

gradient('FF0000', '0000FF', 'my test goes here'); 

的正常工作,但現在我想把變量

梯度($ colour1,$顏色2,$配置文件);

這是prining字母w即使茨艾倫的,如果我只是打印配置文件和其他2變量有所有設置......和他們都不是隻是W¯¯

這裏是我得到的顏色.. 。

<?php 


    $sql1 = "SELECT * FROM profile_colurs WHERE username='{$profile}' "; 
$result1 = mysql_query($sql1) or die(mysql_error()); 
$values1 = mysql_fetch_array($result1); 


$co1= mysql_real_escape_string($values1['colour1']); 
$colour1 = strip_tags($co1); 
$co2= mysql_real_escape_string($values1['colour2']); 
$colour2 = strip_tags($co2); 
$co3= mysql_real_escape_string($values1['colour3']); 
$colour3 = strip_tags($co3); 


     include_once('functions/granit.php'); 

     gradient($colour1,$colour2,$profile); 


     ?> 

完美的所有變量打印但很快我已經把它放到功能IM剛開「W」 我到底做錯了什麼?

+0

一次測試一個變量,看看你是否可以得到它的工作。像'漸變($ colour1,'0000FF','我的測試')'。這樣你至少可以看到哪個變量是罪魁禍首。 – 2012-07-19 15:07:55

+0

你不會在你從**數據庫獲得的數據上運行'mysql_real_escape_string'。 – nickb 2012-07-19 15:08:26

+0

準確地說,你爲什麼要對你提取的數據做real_escape_string()?除非要在另一個查詢中使用這些值,否則m_r_e_s()完全沒有意義且可能有害。 – 2012-07-19 15:08:44

回答

0

首先建議,不要使用MySQL_*函數集。它被棄用,其使用是不鼓勵的。

不推薦使用此擴展名。相反,應該使用MySQLi或PDO_MySQL擴展。另請參閱MySQL:選擇API指南和相關FAQ以獲取更多信息。替代該功能包括:

其次,改變你的mysql_fetch_arraymysql_fetch_assoc如果你只是想關聯的結果(意爲列名作爲數組索引)。

最後,做一個var_dump(get_defined_vars());並驗證數據庫中的數據以達到您的預期。在你的代碼片段中,$profile集合在哪裏,它的價值是什麼?