2017-09-23 45 views
1

我想將數據從SQL表中選定的單元格轉換爲字符串,以便我可以檢查它的值是否爲NULL。 這是我的代碼現在的樣子:如何將特定的字段數據轉換爲字符串與PHP

$columnname="cоntact"; 
$columnnumber=1; 
$column=$columnname . $columnnumber; 
$selectcell = mysqli_query($link, "SELECT '{$column}' FROM contacts WHERE id='{$userid}'"); 
$result = mysqli_fetch_assoc($selectcell); 
$cell=(string)$result; 

if (is_null($cell)) { 
    // do something 
} 

這是錯誤我得到:

注意:數組字符串轉換

我很抱歉,如果我的錯誤是顯而易見的,我很新的PHP。

+1

兩件事情來馬上注意:''{$ column}''錯誤的引號,'$ result'是一個數組,你不能將它轉換爲一個字符串。你可能需要'$ cell =(string)$ result [$ column];'? – Qirel

+0

您已經使用支持**預準備語句**的API以及有界變量輸入,您應該利用帶佔位符(準備語句)的參數化查詢來保護數據庫免遭[SQL注入](http://stackoverflow.com/q/60174 /)! 開始使用['mysqli :: prepare()'](http://php.net/mysqli.prepare)和['mysqli_stmt :: bind_param()'](http://php.net/mysqli-stmt .bind-PARAM)。 – Qirel

回答

1

很簡單,你在你的is_null函數中使用了最終的MySQL數組。您需要專門訪問列像這樣:

$columnname="cоntact"; 
$columnnumber=1; 
$column=$columnname . $columnnumber; 
$selectcell = mysqli_query($link, "SELECT `{$column}` FROM contacts WHERE 
id='{$userid}'"); 
$result = mysqli_fetch_assoc($selectcell); 
$cell=(string)$result[$column]; //note accessing the [$column] value of the $result array 

if (is_null($cell)) { 
    // do something 
} 
+1

查詢中的引號如何,對這些引號有什麼想法? ;-) – Qirel

+1

觀察點:D – Jordan

+0

從MySQL返回的所有東西都是一個字符串,它並不關心列的類型。因此,對字符串進行類型轉換是多餘的(這樣做也沒有錯),但是,您仍然解決了這兩個問題:+1 :-) – Qirel

0

最簡單的方法,恕我直言,是將數據作爲非關聯數組提取,並採取第一場:

$result = mysqli_fetch_row($selectcell); 
$cell = $result[0]; 
相關問題