【发布时间】:2016-01-20 20:31:20
【问题描述】:
我熟悉 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
编辑:我现在使用了 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);
【问题讨论】:
-
你需要用反引号括住你的表名,因为它里面有一个空格。
INSERT INTO `VIP Membership`(`Name`, `Email`) VALUES (?, ?); -
P.S.此代码不安全。你应该不使用
mysql_query和朋友了。您应该考虑升级到 MySQLi 或 PDO 并切换到准备好的语句。 -
谢谢你,顺便说一句,如果服务器的用户名最后有@localhost,我需要将其添加到代码中的用户名或@左侧的用户名
-
嗯,你是对的,我检查了 phpmyadmin 的右侧并说扩展名:mysqli @RocketHazmat
-
在 PHP 代码中,你不应该需要
@localhost,只需要@左侧的内容。