Azure MySQL в приложении для веб-приложения не обновляет строки

#php #database #azure #mysqli

#php #База данных #azure #mysqli

Вопрос:

Я скопировал всю свою папку в веб-приложение через ftp , страница загружается без каких-либо проблем, я использую config.php файл в config/ папке:

 <?php
 $host = '127.0.0.1';
 $username = '-';
 $password = '-';
 $db_name = 'localdb';

//Establishes the connection
 $link = mysqli_init();
 mysqli_real_connect($link, $host, $username, $password, $db_name, 49187);
 if (mysqli_connect_errno($link)) {
  die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Close the connection
  mysqli_close($link);
?>
  

Ссылка работает, потому что, если я перейду на index.php страницу с неправильными данными, заполненными в бите подключения, страница даже не загрузится, я также попытался посмотреть, могу ли я создать таблицу в этом файле:

 <?php
 $host = '127.0.0.1';
 $username = '-';
 $password = '-';
 $db_name = 'localdb';

//Establishes the connection
 $link = mysqli_init();
 mysqli_real_connect($link, $host, $username, $password, $db_name, 49187);
 if (mysqli_connect_errno($link)) {
  die('Failed to connect to MySQL: '.mysqli_connect_error());
}

 if (mysqli_query($link, '
 CREATE TABLE test (
 `Id` INT NOT NULL AUTO_INCREMENT ,
 `test1` VARCHAR(200) NOT NULL ,
 `test2` VARCHAR(50) NOT NULL ,
 `test3` DOUBLE NOT NULL ,
 PRIMARY KEY (`Id`)
 );
 ')) {
 printf("Table createdn");
}

//Close the connection
  mysqli_close($link);
?>
  

Это тоже работает, при переходе к index.php в верхнем левом углу вы можете увидеть Table created .

Я экспортировал базу данных, которую использовал, и импортировал ее в текущую базу данных, все это работает, проблема не в подключении.

итак, на index.php странице код входа в систему является:

 <?php
session_start();

if($_SESSION["loggedin"] == true){
    header("location: dashboard.php");
}

require_once "config/config.php";

$email = $password = "";
$email_err = $password_err = "";

if($_SERVER["REQUEST_METHOD"] == "POST"){

    if(empty(trim($_POST["email"]))){
        $email_err = "Please enter your email address.";
    } else{
        $email = trim($_POST["email"]);
    }

    if(empty(trim($_POST["password"]))){
        $password_err = "Please enter your password.";
    } else{
        $password = trim($_POST["password"]);
    }

    if(empty($email_err) amp;amp; empty($password_err)){

        $sql = "SELECT id, email, password FROM members WHERE email = ?";

        if($stmt = mysqli_prepare($link, $sql)){

            mysqli_stmt_bind_param($stmt, "s", $param_email);

            $param_email = $email;

            if(mysqli_stmt_execute($stmt)){

                mysqli_stmt_store_result($stmt);

                    if(mysqli_stmt_num_rows($stmt) == 1){
                    // Bind result variables
                    mysqli_stmt_bind_result($stmt, $id, $email, $hashed_password);
                    if(mysqli_stmt_fetch($stmt)){
                        if(password_verify($password, $hashed_password)){

                        session_start();

                            $_SESSION["loggedin"] = true;
                            $_SESSION["id"] = $id;
                            $_SESSION["email"] = $email;

                            header("location: dashboard.php");
                        } else{
                            $password_err = "The password you entered was not valid.";
                        }
                    }
                } else{
                    $email_err = "No account found with that email.";
                }
            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }
        }

        mysqli_stmt_close($stmt);
    }

    mysqli_close($link);
}
?>
  

Почему я так смущен, потому что ничего, кроме

  $host = '127.0.0.1';
 $username = '-';
 $password = '-';
 $db_name = 'localdb';
  

Эти детали изменились.

Комментарии:

1. updating rows но где запрос на обновление?

2.Извините за updating rows я имею в виду SELECT UPDATE INSERT и т.д., Это работало на моем старом веб-сайте без каких-либо проблем, но поскольку я по какой-то причине перешел на azure, импортированные данные из моей старой базы данных в новую, это не работает. С помощью create table в моем config.php файле была создана новая таблица, и я также создал строки, удалил их без каких-либо проблем, но таблица members и servers не работают.

Ответ №1:

У нас есть сообщение в блоге об использовании MySQL в приложении, которое может быть полезным. Акцент был сделан на оригинальном авторе.


В качестве НАИЛУЧШЕЙ ПРАКТИКИ при использовании MySQL в приложении мы рекомендуем ВСЕГДА использовать переменные среды для информации базы данных, чтобы предотвратить проблемы с подключением к базе данных вашего веб-приложения. Если вашему приложению требуется отдельная переменная для порта, вы можете использовать WEBSITE_MYSQL_PORT переменную среды. Выбранный номер порта может измениться, если экземпляр перерабатывается, и, следовательно, ВСЕГДА используйте переменные окружения.

https://blogs.msdn.microsoft.com/appserviceteam/2016/08/18/announcing-mysql-in-app-preview-for-web-apps/