我正在尝试在单独的文件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表中的特定单元格中检索内容。任何帮助将不胜感激。
答案 0 :(得分: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;
答案 1 :(得分: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;
}