加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

多次调用PHP函数会产生MySQL错误

发布时间:2021-03-05 17:12:41 所属栏目:MySql教程 来源:网络整理
导读:我正在尝试使用PHP函数从数据库中检索多个数据,但不知何故,当我多次这样做时,它会产生MySQL连接错误. $heat=getStat("heat",$userid);$cash=getStat("cash",$userid);echo mysql_error(); 我使用上面的代码通过调用从数据库中检索统计信息的函数来分配变量

我正在尝试使用PHP函数从数据库中检索多个数据,但不知何故,当我多次这样做时,它会产生MySQL连接错误.

$heat=getStat("heat",$userid);
$cash=getStat("cash",$userid);
echo mysql_error();

我使用上面的代码通过调用从数据库中检索统计信息的函数来分配变量.

当我单独使用上述代码时,它们可以工作.但是当我把它们放在一起时它们会失败.

这是一个简单的你是一个初学者 – 菜鸟编程错误吗?

我忘了发布这个功能,所以这里是:

function getStat($statName,$userID) {
    require_once 'config.php';
    $conn = mysql_connect($dbhost,$dbuser,$dbpass)
       or die('Error connecting to MySQL' . mysql_error());
    mysql_select_db($dbname);
    $query = sprintf("SELECT value FROM user_stats WHERE stat_id = (SELECT id FROM stats WHERE display_name = '%s' OR short_name = '%s') AND user_id = '%s'",mysql_real_escape_string($statName),mysql_real_escape_string($userID));
    $result = mysql_query($query);
    list($value) = mysql_fetch_row($result);
    return $value;        
}
最佳答案 问题很可能是由require_once引起的.因为这是您为数据库连接提供配置的地方.第二次执行require时,它不会引入定义数据库连接变量所需的代码.

正如@MichaelBerkowski所说,在脚本加载时有一个全局连接会好得多,并且对每个数据库请求都使用这个连接.但是,如果您希望坚持当前的方式,这应该可以解决问题:

function getStat($statName,$userID) {
    require 'config.php'; /// <-- note this has changed to just require
    $conn = mysql_connect($dbhost,$dbpass)
        or die ('Error connecting to mysql');
    mysql_select_db($dbname);
    $query = sprintf("SELECT value FROM user_stats WHERE stat_id = (SELECT id FROM stats WHERE     display_name = '%s' OR short_name = '%s') AND user_id = '%s'",mysql_real_escape_string($userID));
    $result = mysql_query($query);
    list($value) = mysql_fetch_row($result);
    return $value;      
}

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读