Предупреждение: mysqli_query() ожидает, что параметр 1 будет иметь логическое значение mysqli
После отправки чего-либо через мою форму я получаю приветственную часть, а затем ошибку подключения mysql, потому что mysql выключен, он исчезает, когда я его включаю, а затем логическая ошибка. "Предупреждение: mysqli_query() ожидает, что параметр 1 будет mysqli, логическое значение указано в C:\xampp\htdocs\welcome.php в строке 25"
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?><br>
Your password is <?php echo $_POST["password"]; ?><br>
You have purchased the <?php echo $_POST["sub_type"]; ?>
<?php
$mysqli_host = "localhost";
$mysql_username = "root";
$mysql_password = "123";
$site_db = "test";
$info_name = $_POST["name"];
$info_pass = $_POST["password"];
$info_email = $_POST["password"];
$sub_type = $_POST["sub_type"];
$con=mysqli_connect($mysqli_host,$mysql_username,$mysql_password,$site_db);
// Checks connection to twitch webpanel database and inserts registreation info
if (mysqli_connect_errno());
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO Users (Username, Password, Email, Subcription)
VALUES ('$info_name', '$info_pass', '$info_email', '$sub_type')");
?>
</body>
</html>
3 ответа
Скорее всего, у вас ошибка подключения в mysqli_connect. Неправильные учетные данные или MySQL не работает.
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
//you need to exit the script, if there is an error
exit();
}
if (mysqli_connect_errno());
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit(); // **this is missing**
}
mysqli_query($con,"INSERT INTO Users (Username, Password, Email, Subcription)
VALUES ('$info_name', '$info_pass', '$info_email', '$sub_type')");
Вот ваш баг:
if (mysqli_connect_errno());
На конце не должно быть точки с запятой.
Также, согласно документации, вы должны использовать это для проверки ошибок подключения:
if (mysqli_connect_error())
Но, как я сказал в комментарии, я рекомендую использовать PDO вместо mysqli. И убедитесь, что вы правильно экранировали значения, вставленные в базу данных, и зашифровали пароль с помощью pbkdf2 или scrypt.