ホームページ  >  記事  >  バックエンド開発  >  警告: mysql_close(): 7 は有効な MySQL-Link リソースではありません。その対処方法

警告: mysql_close(): 7 は有効な MySQL-Link リソースではありません。その対処方法

WBOY
WBOYオリジナル
2016-06-13 13:34:131221ブラウズ

警告: mysql_close(): 7 は有効な MySQL-Link リソースではありません
1 つのインターフェイスで 2 つの mysql データベース操作を実行しました。
1. インターフェイスに入ると、インターフェイスのレイアウトが左側と右側の部分に分かれています。左側の部分が表示されます。データベース操作を実行します。
2. 左側の [送信] をクリックすると、右側のコンテンツにデータベース操作が実行されたことが表示されます。
データベース クラスがあり、左側で 1 回新規、右側で 1 回新規です。
ページに入ると、警告: mysql_close(): 7 is not a valid MySQL-Link resource in E:wwwbk_hmsystembackstagedb.php on line 22
左側のデータベース操作を削除すると、この問題は発生しません。
mysql_close は、次のようにデータベース操作クラスのデストラクターに配置されます:
class db
{
private $host;
private $user;
private $pw;
private $con;
private $dbname;

function __construct($host,$user,$pw,$dbname)
{
$this->host=$host;
$this->user=$user;
$this->pw=$pw;
$this->dbname=$dbname;
$this->connect() ;
}
function connect()
{
$this->con=mysql_connect($this->host,$this->user,$this->pw);
if(!$this->con) die(mysql_error());
mysql_select_db($this->dbname,$this->con) または die(mysql_error());
}
関数 __destruct()
{
mysql_close($this->con);
}
関数 query($name,$table,$cond)
{
if(($name=="")&&($cond==""))
$sql="select * from $table";
else
{
if($name = ="")
$sql="select * from $table where $cond";
else
{
if($cond=="")
$sql="select $name from $table";
else
$sql="select $name from $table where $cond";
}
}
$result=mysql_query($sql,$this - >con);
if(!$result)
{
die (mysql_error());
}
else
return $result;
}
}
赤い部分に何か問題があるのですが、理由がわかりません。

-----解決策---------
どうやら2回電話したようです。接続は初めて閉じられました。 2回目でも失敗します。そのステップをスキップしてもよいでしょう。スクリプトが終了すると、接続は自然に切断されます。
------解決策------------------
ページは 2 つのフレーム ページで構成されていますか?

コード分析を追加します
function __destruct()
{
if(is_resource($this->con))
mysql_close($this->con); 🎜> else {
echo $_SERVER['PHP_SELF'];
var_dump($this->con);
}
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。