こんにちは私は与えられた入力からデータベースとテーブルを作成したいと同時に、データベースとテーブルがすでに存在するかどうかをチェックします。誰かが私を助けてくれますか?与えられた入力からデータベースとテーブルを作成する
<HTML>
<form action="index.php" method="post">
Project No.:<input type="text" name="name"><br>
Question: <input type="text" name="email"><br>
<input type="submit" name="submit" value="Submit">
</form>
</html>
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
If(isset($_POST['submit']))
{
$projno = $_POST['name'];
$question = $_POST['email'];
$_SESSION['proj'] = $projno;
$_SESSION['QA'] = $question;
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$checkdb = "CREATE DATABASE IF NOT EXISTS ".$projno;
if($conn->query($checkdb)===TRUE)
{
$dbname = $projno;
$conn = new mysqli($servername, $username, $password, $dbname);
if ($tableExists = $conn->query("SHOW TABLES LIKE ".$question) > 0){
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
}
}
else{
// Create database
$sql = "CREATE DATABASE " . $projno;
if ($conn->query($sql)===TRUE) {
echo "Database created successfully";
} else {
echo "Error creating database: " . $conn->error;
}
}
}
?>
こんにちは、ここに私の更新コードです。あなたのおかげで、それはすでに動作するように助けてくれます。このエラーが発生する別の問題があります。 エラーの作成SQL構文にエラーがあります。 MariaDBサーバーのバージョンに対応するマニュアルをチェックし、正しい構文が1行目の '23992550'の近くで使用されるようにしてください。データベース名の入力は受け付けません。あなたが私を再び助けてくれることを願ってあなたが実際に同じ変数を取得しているので、
$conn = new mysqli($servername, $username, $password);
...
$conn = new mysqli($servername, $username, $password, $dbname);
しかし、それは動作しません:事前
<HTML>
<form action="index.php" method="post">
Project No.:<input type="text" name="name"><br>
Question: <input type="text" name="email"><br>
<input type="submit" name="submit" value="Submit">
</form>
</html>
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
If(isset($_POST['submit']))
{
$projno = $_POST['name'];
$question = $_POST['email'];
$_SESSION['proj'] = $projno;
$_SESSION['QA'] = $question;
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$checkdb = "CREATE DATABASE IF NOT EXISTS ".$projno;
if($conn->query($checkdb)===True)
{
$conn->query("USE $projno");
if ($conn->query("DESCRIBE " . $question))
{
//Table exist
header('location:exp.php');
}
else
{
$sql = "CREATE TABLE ".$question."(LIST VARCHAR(150) NOT NULL)";
if ($conn->query($sql) === TRUE)
{
header('location:exp.php');
}
else
{
echo "Error creating table: " . $conn->error;
}
}
}
else
{
echo "Error creating " . $conn->error;
}
}
?>
それがひどく(ハッカーに優しい)SQLインジェクションの影響を受けやすく、(単一のフォームのために複数のデータベースを)設計されたとしてあなたは、生産におけるそのようなものを置くべきではありません、一切の検証が含まれていません。あなたがハッキングしてそれを修正しても機能しないとしても、すぐに管理できなくなるでしょう。 –