【问题标题】:I'm trying to create a PHP page that will take input and create a table containing that input我正在尝试创建一个 PHP 页面,该页面将接受输入并创建一个包含该输入的表
【发布时间】:2016-07-01 19:37:29
【问题描述】:

正如标题所说,我正在努力实现这一目标。到目前为止,我已经成功地连接到数据库并创建了表,但是我很难让输入字段与 PHP 进行通信,以便与变量进行通信。以下是我的代码,不胜感激:

<html>
<input type="text" name="firstname" />
</html>

<?php
$dbserver= "localhost";
$dbuser= "nyamamot_live";
$dbpass = "co6}]oJ5Db9v";
$dbname = "nyamamot_live";

//conncet
$conn = new mysqli($dbserver, $dbuser, $dbpass, $dbname);
//check
if ($conn->connect_error) {
   die("Connection failed: " . $conn->connect_error);
}

// make vars
$tablename = "MyTable";
$col1 = "col1";


$firstname = $_POST["firstname"];


// sql to create table
$sql = "CREATE TABLE $tablename (
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\n";
} else {
    echo "Error creating table: " . $conn->error;
}

$conn->close();

?>

【问题讨论】:

  • 您实际上并没有提交表单。

标签: php mysql database input field


【解决方案1】:

您需要为您的表单提供一个按钮和一个操作,然后在运行代码之前进行测试以确保它已提交:

<html>
    <form name="myform" action="myphp.php" method="post">
        <input type="text" name="firstname" />
        <input type="submit" name="submit" />
    </form>
</html>

然后测试:

if(isset($_POST['firstname']) && '' != $_POST['firstname']){

    $dbserver= "localhost";
    $dbuser= "nyamamot_live";
    $dbpass = "co6}]oJ5Db9v";
    $dbname = "nyamamot_live";

//conncet
    $conn = new mysqli($dbserver, $dbuser, $dbpass, $dbname);
//check
   if ($conn->connect_error) {
       die("Connection failed: " . $conn->connect_error);
    }

// make vars
    $tablename = "MyTable";
    $col1 = "col1";


    $firstname = $_POST["firstname"];


// sql to create table
    $sql = "CREATE TABLE $tablename (
    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\n";
    } else {
        echo "Error creating table: " . $conn->error;
    }

    $conn->close();
}

您还需要确保您的表创建语法是正确的,并且您在语句中使用的任何变量都经过清理和正确处理。

【讨论】:

  • 看起来不错!问这个问题的人一定明白“myphp.php”是写这段代码的文件名,否则你可以使用action=""来相同的页面。
  • 完美!这完全符合预期,感谢您指出表单和问题。我会做更多的研究来弄清楚这些到底是什么意思,你给了我一个开始的地方。
猜你喜欢
  • 1970-01-01
  • 2020-01-01
  • 2021-06-12
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
相关资源
最近更新 更多