Я знаком с базами данных MySql, но есть новая база данных MariaDB. Я пытаюсь вставить данные из PHP-кода, и я не могу, так что вы можете помочь мне вставить данные? Мой PHP на сервере – 5.4.32, а моя MySQL – 10.0.20-MariaDB-cll-live.
Это код, который я использую, чтобы попытаться вставить данные в MariaDB.
$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server $db = mysql_select_db("database", $connection); // Selecting Database from Server if(isset($_POST['submit'])){ // Fetching variables of the form which travels in URL $name = $_POST['name']; $email = $_POST['email']; if($name !=''||$email !=''){ //Insert Query of SQL $query = mysql_query("insert into VIP Membership(Name, Email) values ('$name', '$email')"); echo "<br/><br/><span>Data Inserted successfully...!!</span>"; } else{ echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>"; } } mysql_close($connection); // Closing Connection with Server
EDIT: теперь я использовал код mysqli, но это порождает ошибку 500.
<?php $servername = "localhost"; $username = "username"; $password = ""; $dbname = "db_table"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } if(isset($_POST['submit'])){ // Fetching variables of the form which travels in URL $name = $_POST['name']; $email = $_POST['email']; if($name !=''||$email !=''){ $sql = "INSERT INTO 'VIP Membership' (Name, Email) VALUES ('$name', '$email')"; if(mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } mysqli_close($conn);
Вам нужно использовать обратные обратные (не одинарные кавычки), чтобы окружать имя вашей таблицы, поскольку в нем есть пробел.
$sql = "INSERT INTO `VIP Membership` (Name, Email) VALUES ('$name', '$email')";
ОБНОВЛЕНИЕ: Вы действительно должны использовать подготовленные заявления. Как бы то ни было, этот код очень опасен.
$sql = mysqli_prepare($conn, "INSERT INTO `VIP Membership` (Name, Email) VALUES (?, ?)"); if($sql !== FALSE){ mysqli_stmt_bind_param($sql, "ss", $name, $email); if(mysqli_stmt_execute($sql)){ echo "New record created successfully"; } else { echo mysqli_stmt_error($sql); } } else{ echo mysqli_error($conn); }
MariaDB – это обратная совместимая, двоичная замена MySQL. Это означает, что версия MariaDB будет работать точно так же, как MySQL. Вам не нужно ничего делать, чтобы ваш MySQL-код работал на MariaDB. Но в вашем коде я бы использовал функцию mysqli
(или PDO) вместо старой устаревшей mysql
.
Поскольку вы можете столкнуться с некоторыми несовместимостями, вы можете проверить этот официальный документ на наличие различий между ними. MariaDB против MySQL