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