【问题标题】:Am I missing something ? PHP MYSQL connection through Xammp我错过了什么吗?通过 Xampp 连接 PHP MYSQL
【发布时间】:2018-10-19 22:12:44
【问题描述】:

我正在尝试在 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>

【问题讨论】:

  • 您对 SQL 注入持开放态度。由于您使用的是 mysqli,因此请利用 prepared statementsbind_param这将解决可能出现的任何令人讨厌的引用问题。 同时检查mysqli errors 以确保一切正常。
  • 我在您的表单中没有看到insert。你的意思是检查$_POST['submit']吗?
  • 我没有在表格中看到“插入”。通用: 1. 仅在 phpMyAdmin 中尝试使用任何值而不是变量的 SQL 查询。 2.从你的php页面一步一步来。

标签: php html mysql xampp


【解决方案1】:

您好,您正在检查插入 isset($_POST['insert']) 中的值,但插入名称未在任何控件中分配,因此请在下面为您的提交控件检查分配插入名称:

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

【讨论】:

    【解决方案2】:

    我对你的代码有点困惑,但我认为这里有错误的部分:

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

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

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

    您正在尝试检查 POST 是否设置为插入而不是提交。

    【讨论】:

    • 感谢您的回复!经过一番凝视和思考,我想通了!
    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2013-08-01
    • 2020-12-25
    相关资源
    最近更新 更多