Php 从另一个函数运行一个函数

Php 从另一个函数运行一个函数,php,function,Php,Function,我不知道PHP函数是如何工作的。我有这个功能: function runQueryMeta($tabelM, $metaName, $id_post, $metaValue, $check_ok_M){ $result = $conn -> query("SELECT * FROM ".$tabelM." WHERE post_id=".$id_post." AND meta_key='".$metaName."'&qu

我不知道PHP函数是如何工作的。我有这个功能:

function runQueryMeta($tabelM, $metaName, $id_post, $metaValue, $check_ok_M){
$result = $conn -> query("SELECT * FROM ".$tabelM." WHERE post_id=".$id_post." AND meta_key='".$metaName."'");
if ($result->num_rows > 0){
    $conn -> query("UPDATE ".$tabelM." SET meta_value='".$metaValue."' WHERE post_id='".$id_post."' AND meta_key='".$metaName."'");
}else {
    $conn -> query("INSERT INTO ".$tabelM." (post_id, meta_key, meta_value) VALUES ('".$id_post."', '".$metaName."', '".$metaValue."')");
}
$check_ok_M = 1;
$result -> free_result();
return $check_ok_M;
$nume_ok = runQueryMeta('mnsa_usermeta', 'nume_organizatie_companie', $item_id, $_POST['f_nume']);
}

我对函数有以下调用:

function runQueryMeta($tabelM, $metaName, $id_post, $metaValue, $check_ok_M){
$result = $conn -> query("SELECT * FROM ".$tabelM." WHERE post_id=".$id_post." AND meta_key='".$metaName."'");
if ($result->num_rows > 0){
    $conn -> query("UPDATE ".$tabelM." SET meta_value='".$metaValue."' WHERE post_id='".$id_post."' AND meta_key='".$metaName."'");
}else {
    $conn -> query("INSERT INTO ".$tabelM." (post_id, meta_key, meta_value) VALUES ('".$id_post."', '".$metaName."', '".$metaValue."')");
}
$check_ok_M = 1;
$result -> free_result();
return $check_ok_M;
$nume_ok = runQueryMeta('mnsa_usermeta', 'nume_organizatie_companie', $item_id, $_POST['f_nume']);
我有一个连接到数据库的函数:

function OpenCon(){
$dbhost = "host";
$dbuser = "user";
$dbpass = "pass";
$db = "db";
$conn = new mysqli($dbhost, $dbuser, $dbpass,$db) or die("Connect failed: %s\n". $conn -> error);
                     
return $conn;
}

有了这个电话

$conn = OpenCon();

但是我有一个错误:
加载资源失败:当我运行第一个函数时,服务器以500()的状态响应。

必须在runQueryMeta函数中调用connect db函数。openConn函数是否与runQueryMeta具有相同的类?如果是这样,你就叫它

function runQueryMeta($tabelM, $metaName, $id_post, $metaValue, $check_ok_M) {
    $conn = $this->OpenCon();

警告:您完全可以使用参数化的预处理语句,而不是手动生成查询。它们由或提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行。你的代码有点错误。变量$conn应该作为参数传递给runQueryMeta(),您应该阅读上面关于SQL注入的建议。最后,您的mysql服务器出现故障或其他问题。您不希望每次调用函数时都连接数据库,但要在函数外部连接数据库,然后将变量$conn传递给此函数。我该怎么做?