如何使用php将值插入mysql数据库

如何使用php将值插入mysql数据库,php,mysql,sql,database,insert,Php,Mysql,Sql,Database,Insert,我需要帮助了解如何将值插入mysql数据库。我知道我需要为从用户处获得的数据编写一个INSERT语句。但是我真的不明白把这个insert语句放在哪里,以及如何运行它。我是否使用pg_prepare和pg_execute?如果有人能帮我把代码设置到运行insert语句的地方,我将不胜感激!提前谢谢你的帮助 HTML代码 <!DOCTYPE html> <html> <body> <form method="POST", action="Blast.php

我需要帮助了解如何将值插入mysql数据库。我知道我需要为从用户处获得的数据编写一个INSERT语句。但是我真的不明白把这个insert语句放在哪里,以及如何运行它。我是否使用pg_prepare和pg_execute?如果有人能帮我把代码设置到运行insert语句的地方,我将不胜感激!提前谢谢你的帮助

HTML代码

<!DOCTYPE html>
<html>
<body>

<form method="POST", action="Blast.php">
<select id="database" name="database" value='Select a Database'>
    <option value="UniprotKB">UniProtKB</option>
    <option value="GenBank">GenBank</option>
    <option value="RelSeq">RelSeq</option>
</select>
<select id="evalue" name="evalue" value='Select evalue'>
    <option value="0.0001">0.0001</option>
    <option value="0.001">0.001</option>
    <option value="0.01">0.01</option>
    <option value="0.1">0.1</option>
    <option value="1">1</option>
    <option value="10">10</option>
    <option value="100">100</option>
    <option value="1000">1000</option>
</select>

<input id="BlastSearch" type="text" name="BlastSearch" value='' />
<input type='submit' name='submit' value='Run BLAST' />
<button type="reset" value="Clear">Clear</button>

</form>

UniProtKB
基因库
RelSeq
0.0001
0.001
0.01
0.1
1.
10
100
1000
清楚的
所以基本上有3个值是由用户插入的,我想在按下submit按钮时将它们全部插入数据库

PHP代码

<?php
    require_once '../secure/database.php';
    $mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname);

    if($mysqli->connect_error){
            exit('CON Error: ' . $mysqli->connect_errno . ' ' . $mysqli->connect_error);
    }

 $db = $_POST['database'];
 $evalue = $_POST['evalue'];
 $sequence = $_POST['BlastSearch'];


    print "Connected! Host info: " . $mysqli->host_info . "<br>\n";
    $mysqli->close();

?>


就这么简单。

基本上,您必须执行两个步骤:

(1) 设置连接,(2)选择数据库并运行插入

$mysqli = new mysqli("localhost", "my_user", "my_password", "database");
$mysqli->query("INSERT INTO ...");
您可以尝试以下方法:

<form action="send.php" method="post" enctype="multipart/form-data">
                <table>
                    <tr>
                        <td>Value1:</td>
                        <td><input type="text" name="value1" required><br></td>
                    </tr>

                    <tr>
                        <td>value2:</td>
                        <td><input type="text" name="value2" required><br></td>
                    </tr>
                    <tr>
                        <td>value3:</td>
                        <td><input type="text" name="value3" required><br></td>
                    </tr>
                </table>
</form>

价值1:

价值2:
价值3:
现在,在send.php上,您可以看到:

<?php
        require 'database.php';

        //information is send to the database//
        $add_info= $database->information();
?>

该类位于ur database.php中,如下所示:

    <?php
    class database {
    private $pdo;

    public function __construct() {
        // Connection information
        $host = 'urhostname';
        $dbname = 'dbname';
        $user = 'username';
        $pass = 'password';

        // Attempt DB connection
        try
            {
                $this->pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
                $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                //echo 'Successfully connected to the database!';
            }
                catch(PDOException $e)
            {
                echo $e->getMessage();
            }
        }



    function information() {
                $sql = "INSERT INTO tablename"
            . "(value1, value2, value3)"
            . "VALUES (:value1, :value2, :value3) ";
                $sth = $this->pdo->prepare($sql);
                $sth->bindParam(':value1', $_POST['value1'], PDO::PARAM_STR);
                $sth->bindParam(':value2', $_POST['value2'], PDO::PARAM_STR);
                $sth->bindParam(':value3', $_POST['value3'], PDO::PARAM_STR);
                $sth->execute();
        }
}

首先,使用[mysqli::select_db]()选择您的数据库,然后您可以使用[mysqli:query]()简单地运行插入查询。不过,我还没有连接到数据库吗?或者我需要再做一遍吗告诉我这不是你的,它在另一个成员()下,已被删除。我记得问题/代码99%相同。你需要阅读教程;我们不是学校。仔细阅读插入物;Stack在这里有一个Q&a=>和,或者,你可以阅读的手册。@ryanlizarga我刚在你今天成为会员的前几天做了这个账户!->另外一个问题在你发布这个问题前10分钟被神奇地删除了?!另一个人怎么可能写这么多几乎和你一样的行呢?我能用pg_prepare和pg_execute吗?@ryanlizarga和no,你不能使用任何pg_*函数,除非你使用的是PostgreSQL数据库,但根据你标记的帖子,我知道你在使用MySQL?PDO可以与PostgreSQL和MySQL(以及其他许多)一起使用。我建议您使用PDO。@hedi和ishas。我已经将php代码连接到数据库。我还需要再次连接吗?@ryanlizarga不,你只需要查询数据库。所以在我的代码中,我已经连接到了数据库。我很困惑,因为每个人都告诉我需要连接。我需要再次连接吗?不,你需要做的是用你的$_POST['database']替换$dbname变量,然后你可以运行$mysqli->query();POST['database']中的变量实际上不是用来获取信息的数据库。这与程序本身有关。用户基本上可以从两个库中选择要使用的库。因此,只需使用$mysql->query()…:)运行INSERT即可$mysqli->query(“设置名称‘utf8’”)$mysqli->query(“设置字符集‘utf8’”)$mysqli->query(“设置排序规则”\u CONNECTION='utf8\u general\u ci'”$mysqli->query(“SET character\u SET\u results='utf8'”$mysqli->query(“SET character\u SET\u server='utf8'”$mysqli->query(“SET character\u SET\u client='utf8'”;这些做什么?这并不能阻止SQL注入,这就是问题所在。明白了。你能解释一下他们到底在做什么吗?如果我不包括它们,会有什么影响?
<?php
        require 'database.php';

        //information is send to the database//
        $add_info= $database->information();
?>
    <?php
    class database {
    private $pdo;

    public function __construct() {
        // Connection information
        $host = 'urhostname';
        $dbname = 'dbname';
        $user = 'username';
        $pass = 'password';

        // Attempt DB connection
        try
            {
                $this->pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
                $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                //echo 'Successfully connected to the database!';
            }
                catch(PDOException $e)
            {
                echo $e->getMessage();
            }
        }



    function information() {
                $sql = "INSERT INTO tablename"
            . "(value1, value2, value3)"
            . "VALUES (:value1, :value2, :value3) ";
                $sth = $this->pdo->prepare($sql);
                $sth->bindParam(':value1', $_POST['value1'], PDO::PARAM_STR);
                $sth->bindParam(':value2', $_POST['value2'], PDO::PARAM_STR);
                $sth->bindParam(':value3', $_POST['value3'], PDO::PARAM_STR);
                $sth->execute();
        }
}