Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我必须连接到数据库两次才能使用一个函数_Php_Database - Fatal编程技术网

Php 我必须连接到数据库两次才能使用一个函数

Php 我必须连接到数据库两次才能使用一个函数,php,database,Php,Database,在文档的开头,我调用include database.php,其中包含 $database = new mysqli('localhost', 'root', 'root', 'dbname', 3306); 但是,当我试图通过函数更新db info时,$database变量似乎不存在,所以我必须再次调用它 有什么解决办法吗 功能代码: <?php include 'database.php'; ?> 。 . 这是我的数据库连接文件

在文档的开头,我调用include database.php,其中包含

$database = new mysqli('localhost', 'root', 'root', 'dbname', 3306);
但是,当我试图通过函数更新db info时,$database变量似乎不存在,所以我必须再次调用它

有什么解决办法吗

功能代码:

<?php
            include 'database.php';        

?>

。 .

这是我的数据库连接文件: #这是我的登录页面:
我想你不知道变量的范围?显示函数代码。发布完整代码您需要知道所提到的@u\u mulder的var作用域。@u\u mulder更新您的代码选项卡很差,您的条件集可以简化,并将您的连接变量作为
roll()
的参数传递。这个答案解释了什么?请尝试:-global$database;
<?php 


   function roll() {

$bet= $_POST["bet"];
    $_SESSION['dice1']=rand(1,6);
    $_SESSION['dice2']=rand(1,6);
    $total=$_SESSION['dice1']+$_SESSION['dice2'];



if($total==2) $win=$bet*2;
 else if($total==3 || $total==4) $win=0;
  else if($total==10 || $total==11) $win=$bet;
   else if($total==12) $win=$bet*4;
    else if($total==0) $win=0;
else $win=$bet-(2*$bet);


  //  $database = new mysqli('localhost', 'root', 'root', 'dbname', 3306);
    $database->query("UPDATE users SET balance=balance+'$win' WHERE name='$_SESSION[username]'");
 # And this is my database connection file:
    <?php
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbname = "test";

                // Create connection
                $conn = new mysqli($servername, $username, $password, $dbname);

                // Check connection
                if ($conn->connect_error) {
                     die("Connection failed: " . $conn->connect_error);
                } 

            $conn->close();
        ?>

 # This is my login page:
        <?php 
            include ('database.php');
            include('password_hash_lib/password.php');

            if (isset($_POST['data']))
            {
                $data = $_POST['data'];
                $auth = json_decode($data);
                $user_email = $auth->Email;
                $user_pass = $auth->Password;
                authenticate($user_email, $user_pass);
            }

            function authenticate($Email, $Password)
            {   
                 global $conn;
                 $HashedPassword = password_hash($Password, PASSWORD_DEFAULT);        
                 $sql = "SELECT * FROM app_users WHERE user_email='$Email'"; 
                 $result = $conn->query($sql);
                 $User = $result->fetch_object();

                if ($User->user_email == '')
                {
                    header("Location: login-page.html?msg=failed");
                }

                if (password_verify($Password, $User->user_password_hash))
                {
                    $_SESSION["user_auth_details"] = $User->user_id . "+" . $User->user_email . '+' . $User->user_name . "+" . $User->user_display_image . "+" . $User->user_display_name;
                    header("Location:" . $_SESSION['page_url']);
                }
                 else {
                    header("Location: login-page.html?msg=failed");

                 }
            }

        ?>