如何从具有输入值的submit调用php函数?

如何从具有输入值的submit调用php函数?,php,post,input,submit,Php,Post,Input,Submit,我遇到了一个小问题。我想,当我按下我的按钮,创建一个数据库,我的名字,因为我想使用我的文字输入。我想用php做这个。如果有人能帮助我,我将非常感激 index.php: require("secret.php"); require("getDatabases.php"); $conn = new PDO($servername, $username, $password); $databases = getDatabases($conn); // $c

我遇到了一个小问题。我想,当我按下我的按钮,创建一个数据库,我的名字,因为我想使用我的文字输入。我想用php做这个。如果有人能帮助我,我将非常感激

index.php:


require("secret.php");
require("getDatabases.php");

$conn = new PDO($servername, $username, $password);
$databases = getDatabases($conn);
// $createDB = create_db($conn, $name);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>phpMyAdmin</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"/>
</head>
<body>
    <!-- list databases-->
    <div class="list-group">
        <?php
            foreach($databases as $data){
                echo "<button type=button class=list-group-item list-group-item-action>". htmlspecialchars($data)."</button>";
            }   
        ?>
    </div>
    <!-- to create database -->
    <form method="post" action="./database/createDB.php">
        <input type="text" placeholder="Create your database"><br>
        <input type="submit" name="submit" value="Create my DB">
    </form>
</body>
</html>

function createDB($pdo, $name)
{
    $create = `CREATE DATABASE $name`;
    $pdo->exec($create);
}

if(isset($_POST['submit']))
{
   createDB();
}

您需要在表单输入文本字段中添加一个
name
属性,然后在
createDB.php
的主代码中检索该属性。然后,您需要将该名称(在验证之后)和您的
$pdo
数据库连接对象传递到
createDB()
函数中,因为它需要这两个参数。除了@droopsnoot所说的,您还需要过滤输入并使用准备好的语句(可以进行演示吗?:)您已经可以看到如何查看表单变量,因为这样做是为了检查表单是否已提交。然后应该清楚如何从表单变量中提取名称,并将其添加为参数。不确定从何处获取
$pdo
变量-通常是在包含文件中创建的,但似乎是在代码中手动执行的。因此,请复制连接到数据库服务器的代码。