我写了一个 php 函数,它应该返回最高主键值。当我调用该函数一次时它工作正常,但当我调用它两次时出现错误。
以下是我的输出:
0 //第一个函数调用的正确答案
//第二个函数调用的以下错误
注意:未定义变量:DBH
致命错误:在非对象上调用成员函数 query()
这是我的函数文件的代码:
<?php function getPKofLastInsert($event)
{
require_once('connection.php');
$Q="";
switch ($event)
{
case "c":
$Q= "SELECT `PK` FROM `c` ORDER BY `PK` DESC LIMIT 0,1";
break;
case "s":
$Q = "SELECT `PK` FROM `s` ORDER BY `PK` DESC LIMIT 0,1";
break;
case "w":
$Q = "SELECT `PK` FROM `w` ORDER BY `PK` DESC LIMIT 0,1";
break;
}
if(!$result= $DBH->query($Q))
{
die("error");
}
else if($result->num_rows==0)
{ return 0; }
else
{
$row= $result->fetch_asoc();
$t=$row['PK'];
$result->free();
//$DBH->close();
return $t;
}
}
?>
<?php
print getPKofLastInsert("c");
print getPKofLastInsert("c");
?>
这是我的connection.php文件:
$DBH = new mysqli(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
if ($DBH->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
在一些论坛上,我发现:
$DBH->close();
应该可以工作,在我的情况下它不 ps 我认为我不需要它,因为我正在使用 require_once() 并且我显然需要我的数据库句柄 $DBH 以用于其他功能......请帮助,谢谢