2013-03-12 105 views
0

我想在一個單獨的文件functions.php來實現這兩種功能,並調用它在index.php爲什麼這個php函數會導致嚴重錯誤?

function is_field($column, $table, $requested) { 

    $is_field_query = "SELECT ".$column." FROM ".$table." WHERE ".$column."='".$requested."'"; 
    $is_field_result = $mysqli->query($is_field_query); 

    $is_true = $is_field_result->num_rows; 

    $is_field_result->close(); 

    return $is_true; 

} 

function get_content($column, $table, $requested) { 

    $get_content_query = "SELECT ".$column." FROM ".$table." WHERE ".$column."='".$requested."'"; 
    $get_content_result = $mysqli->query($get_content_query); 

    $get_content_row = $get_content_result->fetch_array(MYSQLI_ASSOC); 
    $get_content_content = $get_content_row["content"]; 

    $get_content_result->close(); 

    return $content; 

} 

我一遍遍嘗試一遍,我不知道爲什麼它不會工作。第一個返回1爲有效或0爲無效。第二個檢索MySQL表中特定單元格的內容。任何幫助將非常感激。

+2

什麼是你得到的錯誤訊息? 「錯誤500」不夠詳細。 – Dai 2013-03-12 03:37:38

+4

打開錯誤報告http://stackoverflow.com/tags/php/info – Tchoupi 2013-03-12 03:37:40

+1

'從「選擇其中$欄=‘$要求’$表$欄」'你不需要翻來進出引號像如果你的字符串是雙引號的。 – 2013-03-12 03:41:09

回答

0

您使用$mysqli裏面的功能,但你永遠不通過的MySQLi資源本身。考慮寫你的函數是這樣的:

function is_field($mysqli, $column, $table, $requested) { 

或者,創建一個類,需要一個庫MySQLi資源,並與$this->mysqli自己的函數中引用它。

而且,這樣的代碼可能是另一個問題:

$is_field_result = $mysqli->query($is_field_query); 

$is_true = $is_field_result->num_rows; 

你不檢查$is_field_result是否false;因此,下一條語句會導致致命錯誤,因爲無法從不是對象的東西中獲取屬性。

if (($is_field_result = $mysqli->query($is_field_query)) === false) { 
    die($mysqli->error); 
} 
$is_true = $is_field_result->num_rows; 
+0

我在最初的$結果現在評論所有的東西,並試圖依次通過它和它的錯誤。 – Ambiguities 2013-03-12 04:44:19

+0

@JamesC應該早點發現它;你不會將'$ mysqli'傳遞給你的函數。 – 2013-03-12 04:47:34

0

事實證明,它不工作是我需要添加一個額外的字段到函數接受$庫MySQLi從連接中通過的原因。

function is_field($mysqli, $column, $table, $requested) { 

$is_field_query = "SELECT * FROM $table WHERE $column='$requested'"; 
if (($is_field_result = $mysqli->query($is_field_query)) == false) {   
    die($mysqli->error);   
} 
$is_true = $is_field_result->num_rows; 
$is_field_result->close(); 
return $is_true; 

} 

function get_content($mysqli, $column, $table, $requested) { 

$get_content_query = "SELECT * FROM $table WHERE $column='$requested'"; 
if (($get_content_result = $mysqli->query($get_content_query)) == false) { 
    die($mysqli->error); 
} 
$get_content_row = $get_content_result->fetch_array(MYSQLI_ASSOC); 
$get_content = $get_content_row["content"]; 
$get_content_result->close(); 
return $get_content; 

} 
+0

我自己發現了這一點。我會很樂意給任何幫助我解決這個問題的人提供參考或鏈接。 – Ambiguities 2013-03-17 00:52:27

+0

我從來沒有見過提交的答案,我在我的問題的簡單讓人看見。 – Ambiguities 2013-03-17 00:59:31

相關問題