0

我试图在一个单独的文件中实现这两个函数functions.php并调用它index.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 表中的特定单元格检索内容。任何帮助将非常感激。

4

2 回答 2

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_resultfalse; 因此,下一条语句会导致致命错误,因为无法从不是对象的东西中获取属性。

if (($is_field_result = $mysqli->query($is_field_query)) === false) {
    die($mysqli->error);
}
$is_true = $is_field_result->num_rows;
于 2013-03-12T03:45:53.597 回答
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;

}
于 2013-03-12T05:55:10.580 回答