Не удается создать базу данных PHP - PullRequest
0 голосов
/ 29 июня 2018

Я начинаю создавать свой собственный интерфейс для использования с MySql, хотя я не могу создать базу данных с кодом, который у меня есть внизу. Все остальное работает также, я могу вывести переменную $ ObtainDatabase, чтобы увидеть, что она имеет сохраненное значение. Любые предложения будут великолепны.

<?php
    session_start();

    //define connection
    $conn = new mysqli('localhost', 'over_watch','XXXXXXx','billing');

    //Variables
    $UserEmail = $_SESSION['email'];
    $MysqlUserDataBaseCreate  = $_POST['create_database'];

    //CheckIfUserExists
    $SeeIfUserExist = $conn->prepare("SELECT (email) FROM database_users WHERE email= ?;");
    $SeeIfUserExist->bind_param('s',$UserEmail);
    $SeeIfUserExist->execute();

     $SeeIfUserExist->bind_result($ObtainedEmail);
     $SeeIfUserExist->store_result();
     $SeeIfUserExist->fetch();
     $RowsReturnedFromPreparedStatment = $SeeIfUserExist->num_rows();


    if($RowsReturnedFromPreparedStatment < 1){
      $InsertIntoDatabase = $conn->prepare("INSERT INTO database_users(email,check_if_created) VALUES(?,?);");
      $InsertIntoDatabase->bind_param('ss',$UserEmail,$MysqlUserDataBaseCreate);
      $InsertIntoDatabase->execute();

      $SelectDatabaseToCreate = $conn->prepare(" SELECT (check_if_created) FROM database_users WHERE email = ?;");
      $SelectDatabaseToCreate->bind_param('s', $UserEmail);
      $SelectDatabaseToCreate->execute();

      $SelectDatabaseToCreate->bind_result($ObtainDatabase);
      $SelectDatabaseToCreate->fetch();
      $CreateDatabase = "CREATE DATABASE $ObtainDatabase ;";
      $conn->query($CreateDatabase);

    }else{
      echo 'user permitted to one database';
    }


    ?>

1 Ответ

0 голосов
/ 29 июня 2018

Можете ли вы попробовать этот код.

Подробную информацию об этой ошибке можно найти в документации по mysql. Чтение этих подробностей дает понять, что наборы результатов подготовленного выполнения оператора должны быть полностью извлечены перед выполнением другого подготовленного оператора в том же соединении.

Вот документ, в котором вы можете обратиться

<?php
    session_start();

    //define connection
    $conn = new mysqli('localhost', 'over_watch','XXXXXXx','billing');

    //Variables
    $UserEmail = $_SESSION['email'];
    $MysqlUserDataBaseCreate  = $_POST['create_database'];

    //CheckIfUserExists
    $SeeIfUserExist = $conn->prepare("SELECT (email) FROM database_users WHERE email= ?;");
    $SeeIfUserExist->bind_param('s',$UserEmail);
    $SeeIfUserExist->execute();
    $SeeIfUserExist->store_result();

     $SeeIfUserExist->bind_result($ObtainedEmail);
     $SeeIfUserExist->store_result();
     $SeeIfUserExist->fetch();
     $RowsReturnedFromPreparedStatment = $SeeIfUserExist->num_rows();


    if($RowsReturnedFromPreparedStatment < 1){
      $InsertIntoDatabase = $conn->prepare("INSERT INTO database_users(email,check_if_created) VALUES(?,?);");
      $InsertIntoDatabase->bind_param('ss',$UserEmail,$MysqlUserDataBaseCreate);
      $InsertIntoDatabase->execute();
      $InsertIntoDatabase->store_result();

      $SelectDatabaseToCreate = $conn->prepare(" SELECT (check_if_created) FROM database_users WHERE email = ?;");
      $SelectDatabaseToCreate->bind_param('s', $UserEmail);
      $SelectDatabaseToCreate->execute();
      $SelectDatabaseToCreate->store_result();

      $SelectDatabaseToCreate->bind_result($ObtainDatabase);
      $SelectDatabaseToCreate->fetch();
      $CreateDatabase = "CREATE DATABASE $ObtainDatabase ;";
      $conn->query($CreateDatabase);

    }else{
      echo 'user permitted to one database';
    }


    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...