Php表单插入但没有数据
我的表单正在连接DB并插入,但它没有获取表单数据并插入空白字段Php表单插入但没有数据,php,html,mysql,forms,Php,Html,Mysql,Forms,我的表单正在连接DB并插入,但它没有获取表单数据并插入空白字段 <form method="post" action="add.php"> <input type="text" name="firstname" placeholder="Firstname" id="firstname"><br><br> <input type="text" name="lastname" placeholder="Lastname" i
<form method="post" action="add.php">
<input type="text" name="firstname" placeholder="Firstname" id="firstname"><br><br>
<input type="text" name="lastname" placeholder="Lastname" id="lastname"><br><br>
<input type="submit" name="submit" value="Sent">
</form>
下面是add.php脚本:
<?
mysql_connect("localhost","******","******");//database connection
mysql_select_db("testrentals");
//inserting data order
$order = "INSERT INTO customers (firstname, lastname) VALUES ('$firstname', '$lastname')";
//declare in the order variable
$result = mysql_query($order); //order executes
if($result){
echo("<br>Input data is workin and adding!");
} else{
echo("<br>Input data is failing =(");
}
?>
您需要从$\u POST数组提供数据。这就是from数据在提交后的去向
您需要从$\u POST
获取值,即$\u POST['firstname']
。如果要直接从$\u POST中获取数据,最好在将任何内容持久化到数据库之前过滤并验证表单中的内容。让我们将所有这些切换到PDO并正确处理。下面是add.php的外观:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
define('USER', '*****');
define('PASS', '*****');
function dataQuery($query, $params) {
// what kind of query is this?
$queryType = explode(' ', $query);
// establish database connection
try {
$dbh = new PDO('mysql:host=localhost;dbname=testrentals', USER, PASS);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo $e->getMessage();
$errorCode = $e->getCode();
}
// run query
try {
$queryResults = $dbh->prepare($query);
$queryResults->execute($params);
if($queryResults != null && 'SELECT' == $queryType[0]) {
$results = $queryResults->fetchAll(PDO::FETCH_ASSOC);
return $results;
}
$queryResults = null; // first of the two steps to properly close
$dbh = null; // second step tp close the connection
}
catch(PDOException $e) {
$errorMsg = $e->getMessage();
echo $errorMsg;
}
}
$order = "INSERT INTO `customers` (`firstname`, `lastname`) VALUES (?,?)";
$params = array($_POST['firstname'], $_POST['lastname']);
$results = dataQuery($order, $params);
?>
详细解释了这方面的技巧。您应该使用post变量,如
$_POST['firstname'];
$_POST['lastname'];
请它们不再得到维护,而是在使用。而是学习,并使用。在查询/连接中添加一些错误检查,例如或die(mysql\u error())
您的代码易受SQL注入攻击!就像@JayBlanchard所说的。这纯粹是一个个人项目,不是一个出类拔萃的应用程序。没关系。现在仍然没关系。所有的东西,我是说所有的东西,都可以被黑客入侵。那么,为什么这里还没有一个绿色的黑客呢?
$_POST['firstname'];
$_POST['lastname'];