我创建了一个HTML页面,用于将数据输入MySQL数据库。我在同一个HTML页面中嵌入了PHP代码。这是代码,
<html>
<head>
</head>
<body>
<?php
/* Database connection operations */
require_once("db_handler.php");
$conn = iniCon();
$db = selectDB($conn);
?>
<b id="loc_caption_1">Enter a new location</b>
<div id="loca">
<form name="locForm" action="<?php echo $PHP_SELF; ?>" method="post" >
<table width="300" border="0">
<tr>
<td>Location ID</td>
<td><input type="text" name="lid" readonly="readonly" value="<?php echo $new_id; ?>" style="text-align:right" /></td>
</tr>
<tr>
<td>Code</td>
<td><input type="text" name="code" style="text-align:right" /></td>
</tr>
<tr>
<td>Location</td>
<td><input type="text" name="loc" style="text-align:right" /></td>
</tr>
</table>
</div>
<br/>
<div id="buttons">
<input type="reset" value="Clear" /> <input type="submit" value="Save" />
</div>
</form>
<?php
/* Saving new record */
$id = $_POST["lid"];
$code = $_POST["code"];
$location = $_POST["loc"];
$query = "INSERT INTO locations(LID, Code, Location) VALUES('$id', '$code', '$location')";
if (!mysql_query($query, $conn))
{
die("Error " . mysql_error());
}
else
{
echo "<br/><br/>";
echo "1 record added successfully!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=locations.php\">";
}
mysql_close($conn);
?>
</body>
</html>
我遇到的问题是,为了将数据插入数据库而编写的PHP代码块在页面加载后立即执行一次。我怎么能阻止这种情况发生?我希望它等到我将数据输入表单,然后按下提交按钮,然后执行。
谢谢。
答案 0 :(得分:1)
您需要检查是否已提交任何数据,然后才开始工作:
if (!empty($_POST)) {
...
}
答案 1 :(得分:1)
您保存数据的代码应该在if (!empty($_POST))
块中。
答案 2 :(得分:1)
您只需要检查是否提交。
<?php
if(isset($_POST['submit'])) // Check if form submitted or not
{
--- //Code for insert to database.
}
?>
答案 3 :(得分:1)
首先给帖子按钮命名,如
<input type="submit" value="Save" name="GoBtn" />
在下面的包装器
中提交后执行代码if(isset($_POST['GoBtn'])
{
//code here
}
答案 4 :(得分:1)
将php代码放在IF
中if(isset($_POST["submit"])){ // if form is submitted
// do insert things
}
答案 5 :(得分:1)
您将php页面解释为流程:它表示首先显示表单,然后执行 php代码部分,插入空值(我猜)。
在脚本部分中,您必须使用以下内容测试表单显示上下文或表单提交上下文:
if ($_POST) {
// form submit context
}
答案 6 :(得分:1)
将提交按钮标记更改为:
<input type="submit" name="submitForm" value="Save" />
在执行插入的PHP代码之前,请检查submitForm为:
if(isset($_POST["submitForm"]){
//follow the insertion PHP code
}
答案 7 :(得分:1)
在插入数据库之前,您必须检查$ _POST中是否有可用的变量。
if(!empty($ _ POST [“lid”])){
/ *保存新纪录* /
$ id = mysqli_real_escape_string($ _ POST [“lid”]);
$ code = mysqli_real_escape_string($ _ POST [“code”]);
$ location = mysqli_real_escape_string($ _ POST [“loc”]);
$ query =“INSERT INTO位置(LID,代码,位置)VALUES('$ id','$ code','$ location')”;
if(!mysql_query($ query,$ conn))
{
死(“错误”.mysql_error());
}
其他
{
echo“
”;
echo“1条记录成功添加!”;
echo“”;
}
mysql_close($ conn);在 }
使用mysqli_ *函数,mysql_ *函数现已弃用。
答案 8 :(得分:0)
根据发布数据的存在执行PHP代码块。 对于精炼,您甚至可以在语义上测试发布的值。
if ( (array_key_exists('lid', $_POST)
AND (array_key_exists('code', $_POST)
AND (array_key_exists('loc', $_POST) ) {
then execute PHP code block
}