2013-03-12 91 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

相关问题