2014-07-21 58 views
0

我已經創建了此選擇函數,但無法轉義以在數據不是來自用戶的情況下運行簡單查詢。返回不能在我的PHP函數中工作

我的功能起作用,我可以做我想要的global $var但是當我試圖返回值而不是使其成爲全局變量時,它不起作用。我只是好奇這是爲什麼。

這裏是我的功能:

function SelectQuery_NO_ESCAPE($row, $table, $row, $value) { 
    $Database = DatabaseConnection(); 
    $sql_query = "SELECT $row FROM $table WHERE $row = '$value'"; 
    $select_result = $Database['Connection']->query($sql_query) or die(mysqli_error($Database['Connection'])); 
    if ($select_row = $select_result->fetch_assoc()) { 
     global $select_row; 
     $select_row = $select_row[$row]; 

    } 
} 

我有一個test.php文件,我使用的功能:

SelectQuery_NO_ESCAPE('ip', 'ip_address', 'ip', '1'); 
echo $select_row; 

這工作和產出1。如果我嘗試取出全局並僅返回變量$row_value,則不起作用。

這是爲什麼?

+4

哪裏是在函數的返回?從我所看到的,它不會返回任何東西。 –

+4

你真的爲你的函數有兩個不同的'$ row'參數嗎? –

+2

因爲你可能沒有對函數的返回值做任何事情。 'echo SelectQuery ...'會起作用。 – Jon

回答

4

返回它:

if ($select_row = $select_result->fetch_assoc()) { 
    return $select_row[$row]; 
} 

將返回的值:

$something = SelectQuery_NO_ESCAPE('ip', 'ip_address', 'ip', '1'); 
echo $something; 
//or 
echo SelectQuery_NO_ESCAPE('ip', 'ip_address', 'ip', '1'); 
+1

這就是爲什麼,謝謝。我會在10分鐘內接受它。 –