我遗漏了什么吗?通过xammp的php-mysql连接

jslywgbw  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(318)

我正试图将表单数据添加到xampp上的数据库表中,但是虽然我的echo正确地显示了所有内容,但它没有将任何内容输入到数据库表中,我想知道这里是否遗漏了一些内容。我确保所有内容的拼写都相同,所以我怀疑至少是拼写错误….有什么帮助吗,非常感谢您的建议和/或更正!

<!DOCTYPE HTML>  
<html>
<head>

</head>
<body>  

<?php

// define variables and set to empty values
$VarErr = $PavErr = $AdErr = $PkErr = $KiekErr = "";
$Vardas = $Pavarde = $Adresas = $Pk = $Kiekis = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["Vardas"])) {
    $VarErr = "Įveskite vardą";
  } else {
    $Vardas= test_input($_POST["Vardas"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$Vardas)) {
      $VarErr = "Galima vesti tik su raidėmis"; 
    }
  }

  if (empty($_POST["Pavarde"])) {
    $PavErr = "Įveskite pavardę";
  } else {
    $Pavarde = test_input($_POST["Pavarde"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$Pavarde)) {
      $PavErr = "Galima vesti tik su raidėmis"; 
    }
  }

  if (empty($_POST["Adresas"])) {
    $AdErr = "Įveskite adresą";
  } else {
    $Adresas= test_input($_POST["Adresas"]);
  }

  if (empty($_POST["Pk"])) {
    $Pk = "Įveskite prekės kodą";
  } else {
    $Pk = test_input($_POST["Pk"]);
  }

  if (empty($_POST["Kiekis"])) {
    $KiekErr = "Įveskite kiekį";
  } else {
    $Kiekis = test_input($_POST["Kiekis"]);
  }
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
  Vardas: <input type="text" name="Vardas" value="<?php echo $Vardas;?>">
  <span class="error">* <?php echo $VarErr;?></span>
  <br><br>
  Pavarde: <input type="text" name="Pavarde" value="<?php echo $Pavarde;?>">
  <span class="error">* <?php echo $PavErr;?></span>
  <br><br>
  Adresas: <input type="text" name="Adresas" value="<?php echo $Adresas;?>">
  <span class="error"><?php echo $AdErr;?></span>
  <br><br>
  Pk: <input type="number" name="Pk" value="<?php echo $Pk;?>">
  <span class="error"><?php echo $PkErr;?></span>
  <br><br>
  Kiekis:<input type="number" name="Kiekis" value="<?php echo $Kiekis;?>">
  <span class="error"><?php echo $KiekErr;?></span>

  <input type="submit" name="submit" value="Submit">  
</form>

<?php
echo "<h2>Your Input:</h2>";
echo $Vardas;
echo "<br>";
echo $Pavarde;
echo "<br>";
echo $Adresas;
echo "<br>";
echo $Pk;
echo "<br>";
echo $Kiekis;

$host = "localhost";
$user = "root";
$password ="";
$database = "uzsakymas";

try{
    $connect = mysqli_connect($host,$user,$password,$database);
} 
catch(mysqli_sql_exception $ex){
    echo 'database connection error';
}

if(isset($_POST['insert'])) {

    $Vardas = $_POST['Vardas'];
    $Pavarde = $_POST['Pavarde'];
    $Adresas = $_POST['Adresas'];
    $Pk = $_POST['Pk'];
    $Kiekis = $_POST['Kiekis'];

    $insert_query = "INSERT INTO uzsakymai (Vardas,Pavarde,Adresas,Pk,Kiekis)VALUES('$Vardas','$Pavarde','$Adresas','$Pk','$Kiekis')";
    try {
        $insert_result = mysqli_query($connect,$insert_query);

        if($insert_result){
            if(mysqli_affected_rows($connect) > 0)
            {
                echo 'Data Inserted';
                }else{
                    echo'Data not Inserted';
                }   

            }
        } catch(Exception $ex) {
            echo 'Error Insert'.$ex->getMessmessage();
        }
}
?>

</body>
</html>
jexiocij

jexiocij1#

您好,您正在检查插入值 isset($_POST['insert']) 但是在任何控件中都没有指定insert name,所以请在下面的提交控件检查中指定insert name:

<input type="submit" value="Submit" name="insert">
lrl1mhuk

lrl1mhuk2#

我对你的代码有点困惑,但我认为这里有错的地方:

<input type="submit" name="submit" value="Submit">

你有这个提交,但看看这个:

if(isset($_POST['insert']))

您正在尝试检查post是否设置为insert而不是submit。

相关问题