在相同的php脚本中创建表并插入值

时间:2019-01-13 08:06:12

标签: php html mysqli

我试图创建一个表并在同一脚本中向其中插入值。该表已创建,但没有插入值。

我什至尝试对值进行硬编码并对数据库名称进行硬编码,但仍然无法正常工作。

这是我的代码。

<?php

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


$name=$_POST['Name'];
$email=$_POST['Email'];
$phone=$_POST['Phone'];
$password=$_POST['Password'];
$address=$_POST['Address'];
$state=$_POST['State'];

$db=$name.$phone;

require_once('databasesahil.php');


$sql = "CREATE TABLE $db (

phoneno BIGINT(200) NOT NULL ,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
state VARCHAR(255) NOT NULL,
productid VARCHAR(255) NOT NULL,
nameitem VARCHAR(255) NOT NULL,
finalprice DOUBLE NOT NULL,
orderno INT(255) NOT NULL,
payment VARCHAR(30) NOT NULL,
deliverystatus VARCHAR(30) NOT NULL
); INSERT INTO $db (phoneno, name, email, password, address, state) VALUES ('$phone','$name','$email','$password','$address','$state');";

if(mysqli_query($con,$sql)){
        echo "Successfully Registered";

 }
else{
        echo "User already exists";
    }

}
mysqli_close($con);
?>

-谢谢

2 个答案:

答案 0 :(得分:1)

谢谢大家,我找出了问题所在。问题是我正在插入值,直到在创建数据库时所有值都不为null的状态为止,我只是删除了那些不为null的值。该计划奏效了。基本上,这些字段为空,不为null不允许它们插入值。

工作代码-只需在create db中进行这些更改:-

$sql = "CREATE TABLE $db (

phoneno BIGINT(200) NOT NULL ,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
state VARCHAR(255) NOT NULL,
productid VARCHAR(255) ,
nameitem VARCHAR(255) ,
finalprice DOUBLE ,
orderno INT(255) ,
payment VARCHAR(30) ,
deliverystatus VARCHAR(30)
)";

答案 1 :(得分:0)

请尝试分别执行创建和插入SQL的操作,并且那里也存在代码错误-

  
      
  1. 在有关变量使用的Insert语句中。
  2.   
  3. 您已经创建了一个表,其中所有列都不为空,但是您尝试仅插入几列。
  4.   

作为示例,请按照以下说明操作,希望对您有所帮助。

<?php
require_once('databasesahil.php');
if($_SERVER['REQUEST_METHOD']=='POST'){

$name=$_POST['Name'];
$email=$_POST['Email'];
$phone=$_POST['Phone'];
$password=$_POST['Password'];
$address=$_POST['Address'];
$state=$_POST['State'];
$productid=$_POST['productid'];
$nameitem=$_POST['nameitem'];
$finalprice=$_POST['finalprice'];
$orderno=$_POST['orderno'];
$payment=$_POST['payment'];
$deliverystatus=$_POST['deliverystatus'];

$table_name=$name.$phone;

// sql to create table
$sql = "CREATE TABLE ".$table_name."(phoneno BIGINT(200) NOT NULL ,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
state VARCHAR(255) NOT NULL,
productid VARCHAR(255) NOT NULL,
nameitem VARCHAR(255) NOT NULL,
finalprice DOUBLE NOT NULL,
orderno INT(255) NOT NULL,
payment VARCHAR(30) NOT NULL,
deliverystatus VARCHAR(30) NOT NULL
)";

if ($conn->query($sql) === TRUE) {
    echo "Table ".$table_name." created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO ".$table_name." (phoneno, name, email, password, address, state,productid,nameitem,finalprice,orderno,payment,deliverystatus) VALUES ('".$phone."','".$name."','".$email."','".$password."','".$address."','".$state."','".$productid."','".$nameitem."','".$finalprice."','".$orderno."','".$payment."','".$deliverystatus."');";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
}
?>