[英]mysqli_error() connection info
我正在將 PHP 代碼從 mysql_ 轉換為 mysqli_。 我的數據庫連接在一個單獨的文件中,在我的常規代碼的父文件夾中名為“conn.inc”。 里面的代碼是::
function GetDBConn($host="localhost", $user="mydb", $pass="mypass", $db="mydb") {
return $dbconn = @mysqli_connect($host, $user, $pass, $db);
mysqli_close($dbconn);
}
在我的代碼文件中,我有include_once ("../conn.inc");
.
我有這樣的代碼 -
$AuditInsertQ = mysqli_query(GetDBConn(),"INSERT INTO audit (userid, notes) VALUES (\"".$userid."\", \"".$notes."\")") or die("Error inserting row to Audit: ".mysqli_error($dbconn));
當我運行代碼時,我收到一條消息:
PHP Notice: Undefined variable: dbconn in C:\...
我見過的所有示例都將數據庫連接與它引用的代碼放在同一個文件中。 當數據庫連接在不同的文件中時,如何引用它; 我認為“include_once”是這樣的......?
這段代碼有很多錯誤,我什至不知道從哪里開始。
mysqli_error()
GetDBConn()
這樣的 functionmysqli_close()
沒有意義。 由於返回運算符,它永遠不會被調用die()
是有害的@
運算符是有害的我知道很難找到一個好的教程。 互聯網上充斥着蹩腳的過時信息。 我正在寫很好的教程,但谷歌不知道它們很好,也不給你看。 好吧,至少我可以在我的回答中給你。
現代mysqli你必須了解的三件事
mysqli_error()
為了修復您的代碼,
然后將您的代碼重寫為
include_once ("../conn.php");
$stmt = $mysqli->prepare("INSERT INTO audit (userid, notes) VALUES (?,?)");
$stmt->bind_param("ss", $userid,$notes);
$stmt->execute();
有關此代碼中發生的情況的說明,請參閱我的教程,了解如何使用 mysqli 運行 INSERT 查詢
在您的 function GetDBConn
,它返回 mysql 資源,而不是為您定義$dbconn
變量。
使用類似mysqli_query($dbconn = GetDBConn(),"INSERT INTO audit....
筆記
function GetDBConn($host="localhost", $user="mydb", $pass="mypass", $db="mydb") {
return $dbconn = @mysqli_connect($host, $user, $pass, $db);
mysqli_close($dbconn);
}
$dbconn
只存在於 function 中,在 function 之外無法訪問,所以在這里定義是沒有用的。
mysqli_close($dbconn);
永遠不會到達。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.