【问题标题】:Fatal error: Call to a member function set_charset()致命错误:调用成员函数 set_charset()
【发布时间】:2014-04-29 17:48:10
【问题描述】:

我正在使用 Cpanel 开发我的应用程序。它给出了错误

Fatal error: Call to a member function set_charset() on a non-object in /home/restaur  /public_html/restaurant/includes/connect_database.php on line 3

当我访问“www.yyyyy.com/filename/”时

这是我的 connect_database 脚本

<?php 
include($_SERVER['DOCUMENT_ROOT'].'/YOUR_FOLDER/variables/variables.php'); 
$connect->set_charset('utf8');  
?>

我的 close_database 脚本

<?php
include($_SERVER['DOCUMENT_ROOT'].'/YOUR_FOLDER/variables/variables.php');
$connect->close();
?>

我的变量脚本

<?php
// database configuration
$host ="db_host_name";
$user ="db_username";
$pass ="db_pasword";
$database = "database_name";
$connect = new mysqli($host, $user, $pass,$database) or die("Error :       ".mysql_error());?>

【问题讨论】:

    标签: php sql database cpanel web-hosting


    【解决方案1】:

    应该是这样的

    $host ="db_host_name";
    $user ="db_username";
    $pass ="db_pasword";
    $database = "database_name";
    
    // variables.php
    $connect = new mysqli($host, $user, $pass, $database);
    
    /* check connection */
    if ($connect->connect_errno) {
        printf("Connect failed: %s\n", $connect->connect_error);
        exit();
    }
    

    现在在connect_database.php

    // Make sure your included path is correct
    include($_SERVER['DOCUMENT_ROOT'].'/YOUR_FOLDER/variables/variables.php'); 
    global $connect;
    
    $connect->set_charset('utf8');
    

    这将帮助您更深入地了解global

    【讨论】:

    • 如果我更改 php 会出现这样的错误 致命错误:调用 /home/restaur/public_html/restaurant/includes/connect_database.php 中的非对象上的成员函数 set_charset()在第 10 行
    • 你为什么在这里使用global$connect 不在任何功能下对吗?
    • @ShankarDamodaran 根据 OP my variable script 他在variables.php 文件中连接他的数据库,并在connect_database.php 文件中使用该连接,这就是我使用global 访问连接对象的原因。
    • 世界是什么意思?在这种情况下我应该输入什么?
    • @user3423149 它是一个数据库名称:),我想你明白了。我想你现在清楚了。
    【解决方案2】:

    我遇到了这个确切的问题,我遇到了编码问题但添加了

    $connect->set_charset('utf8');
    

    (我的变量实际上是$conn-&gt;set_charset('utf8');)就在

    之后
    $conn = new mysqli($servername, $username, $password, $dbname);
    

    而且效果很好。

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 2012-09-29
      • 2014-02-05
      • 2015-09-14
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多