通过使用两者之间的mysql_query和mysql_fetch_array命令调用下面的函数来连接和关闭数据库是否有任何问题
<?php
function dbconnect()
{
$sql = "localhost";
$username = "------";
$password = "-----";
$connection = mysql_connect($sql, $username, $password) or
die("unwable to cct");
$databse = mysql_select_db("-------", $connection);
global $connection;
}
function close()
{
global $connection;
mysql_close($connection);
}
dbconnect();
$query = "Some SQL Statement";
$data = mysql_query($query, $connection); - L1
while (mysql_fetch_assoc($data))
{
//echo something
}
close();
?>
目前,我收到一条错误消息,说L1处的$ connection需要是一个资源,但是是BOOL。如果我在那里给出一个模具声明,则会触发相同的声明。我不知道出了什么问题。请发现任何错误。我不得不从编码中休假,一段时间后我又回来了。
谢谢&amp;问候
答案 0 :(得分:2)
在分配global
变量之前,您必须使用$connection
关键字。否则,您在函数内部声明一个本地$connection
,然后调用对尚不存在的全局$connection
的引用。在其他函数中,使用了不存在的全局。
function dbconnect()
{
// Global first to be sure the subsequent $connection is the global
// rather than a new one local to this function
global $connection;
$sql = "localhost";
$username = "------";
$password = "-----";
// Now this modifies the global $connection
$connection = mysql_connect($sql, $username, $password) or die("unwable to cct");
$databse = mysql_select_db("-------", $connection);
}
更具可读性的是使用$GLOBALS
数组:
function dbconnect()
{
$sql = "localhost";
$username = "------";
$password = "-----";
// Using the $GLOBALS superglobal array
$GLOBALS['connection'] = mysql_connect($sql, $username, $password) or die("unwable to cct");
$databse = mysql_select_db("-------", $GLOBALS['connection']);
}
最重要的是从$connection
返回dbconnect()
并在其他功能中使用该值:
function dbconnect()
{
$sql = "localhost";
$username = "------";
$password = "-----";
$connection = mysql_connect($sql, $username, $password) or
die("unwable to cct");
$databse = mysql_select_db("-------", $connection);
// Return from the function
return $connection;
}
// call as
$connection = dbconnect();
// and define your other functions to accept $connection as a parameter
答案 1 :(得分:1)
在调用mysql_connect()
之前声明全局$连接function dbconnect()
{
global $connection;
$sql = "localhost";
$username = "------";
$password = "-----";
$connection = mysql_connect($sql, $username, $password) or
die("unwable to cct");
$databse = mysql_select_db("-------", $connection);
}
答案 2 :(得分:0)
不太确定但请尝试使用
关闭它mysql_Close($Connection);
其他一切看起来都不错
答案 3 :(得分:0)
只需将全局$ connection; 行放在函数的开头,就可以了。在函数末尾使用global关键字意味着您要使用全局变量$ connection。但是你现在要做的是,将全局变量$ connection命名为“实际的连接资源ID”。