仅当数据库创建为php pdo时,才运行一次insert查询

仅当数据库创建为php pdo时,才运行一次insert查询,php,database,pdo,insert,Php,Database,Pdo,Insert,从config.php <?php global $dbh; $dbname = 'memberdb'; try { $dbh = new PDO("mysql:host=localhost", "root", ""); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbname = "`".str_replace("`","``",$dbname)

从config.php

<?php 
global $dbh;
$dbname = 'memberdb';


try {
        $dbh = new PDO("mysql:host=localhost", "root", "");
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbname = "`".str_replace("`","``",$dbname)."`";
        $dbh->query("CREATE DATABASE IF NOT EXISTS $dbname");
        $dbh->query("use $dbname"); 
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    $sql ="CREATE TABLE IF NOT EXISTS $member ( 
        mem_id int(40) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(40) NOT NULL, 
        password VARCHAR(40) NOT NULL);" ;
        $dbh->exec($sql); 
$stmt = $dbh->prepare("INSERT INTO member (username, password) VALUES (?,?)")or die($db->errorInfo());
    $stmt->bindValue(1,"admin1",PDO::PARAM_STR);
    $stmt->bindValue(2,"password1",PDO::PARAM_STR);
    $stmt->execute();
    $stmt->bindValue(1,"admin2",PDO::PARAM_STR);
    $stmt->bindValue(2,"password2",PDO::PARAM_STR);
    $stmt->execute();
    $stmt->bindValue(1,"admin3",PDO::PARAM_STR);
    $stmt->bindValue(2,"password3",PDO::PARAM_STR);
    $stmt->execute();
} catch(PDOException $e) {

}
?>

这是我使用注册按钮注册用户时新用户的功能。 如何使这种函数在创建数据库时只运行一次,并且只运行一次。 我需要为每个输入输入定义值,但我还没有更改它

更新

当我重新加载index.php时,我使用的代码在我的问题之上仍然是相同的。查询再次运行,进行双输入。我想要的是,当创建数据库时,查询将运行,而当加载数据库时,不会再次创建数据库,因此我希望查询不会再次运行,以避免重复输入

$stmt = $dbh->prepare("SELECT * FROM member") ;
    $stmt->execute();
    $count = $stmt -> rowCount();
    echo $count;
    if( $count == 00 ){
        $stmt = $dbh->prepare("INSERT INTO member (username, password) VALUES (?,?)")or die($db->errorInfo());
        $stmt->bindValue(1,"admin1",PDO::PARAM_STR);
        $stmt->bindValue(2,"password1",PDO::PARAM_STR);
        $stmt->execute();
        $stmt->bindValue(1,"admin2",PDO::PARAM_STR);
        $stmt->bindValue(2,"password2",PDO::PARAM_STR);
        $stmt->execute();
        $stmt->bindValue(1,"admin3",PDO::PARAM_STR);
        $stmt->bindValue(2,"password3",PDO::PARAM_STR);
        $stmt->execute();
    }

我还有一个问题,为什么有时计数的回声是3,有时是33,就像查询运行了两次请清除这个…这是可行的,但可能这里有不正确的逻辑,请随意编辑以使其完美。

“只运行一次意味着在创建数据库时运行它”-我没有看到数据库“创建”代码。这是数据库创建代码
CREATE database db_name
编辑代码sir@Fred ii-你说的没错这只是一个将新用户插入数据库的功能。通过“仅运行一次”,我假设您的意思是不创建重复项。在查询之前,请检查该用户是否已存在于数据库中,如果未创建,则不创建。请重新定义您的问题。