【问题标题】:Form validation and mysql database connection表单验证和mysql数据库连接
【发布时间】:2014-07-12 16:49:40
【问题描述】:

我正在开发一个项目 (PHP/MySQL),但我在验证数据时遇到了问题。 当我提交信息时,我没有在我的数据库(PHPmyadmin)中找到它。我认为这是一个连接问题! 这是我的表格:

<form id="formulaire" role="form" action="index.php" method="POST">
                    <h3 style="color:red;">Ajouter un reservoir</h3>
                    <label for="coordlat" style="margin-bottom:7px;">Latitude du point</label>
                    <input type="text" class="form-control" id="latitude" name="latitude" placeholder="Latitude"  style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Longitude de point</label>
                    <input type="text" class="form-control" id="longitude" name="longitude"  placeholder="Longitude" style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Code du reservoir</label>
                    <input type="text" class="form-control" id="coderes" name="coderes" placeholder="Code" style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Nom du reservoir</label>
                    <input type="text" class="form-control" id="nomres" name="nomres"  placeholder="Nom" style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Adress du reservoir</label>
                    <input type="text" class="form-control" id="adressres" name="adressres"  placeholder="Adress" style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Capacité du reservoir</label>
                    <input type="text" class="form-control" id="capaciteres" name="capaciteres"  placeholder="Capacité" style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Alimentation</label>
                    <input type="text" class="form-control" id="alimentationres" name="alimentationres"  placeholder="Alimentation" style="margin-bottom:7px;" required>
                    <label for="coordlng" style="margin-bottom:7px;">Cote radial du reservoir</label>
                    <input type="text" class="form-control" id="coteradres" name="coteradres"  placeholder="Cote radial" style="margin-bottom:7px;" required>
                    <div style="padding-top:10px;">
                        <select name="typeres" style="margin-bottom:7px;" required>
                                <option value="" disabled selected>Type du reservoir</option>
                                <option value="enterre">Enterré</option>
                                <option value="semi-enterre">Semi enterré</option>
                        </select>
                        <select name="pseutype" style="margin-bottom:7px;" required>
                                <option value="" disabled selected>Pseudo-type du reservoir</option>
                                <option value="onep">Reservoir ONEP</option>
                                <option value="ramsa">Reservoir RAMSA</option>
                                <option value="onep">Forage C</option>
                                <option value="onep">Forage RA</option>
                        </select>
                    </div>
                    <div style="padding-top:10px;">
                        <input type="submit" value="Valider" id="Reservoirbtn" class="btn btn-success" >
                        <input type="reset" value="Vider es champs" id="Reservoirbtn" class="btn btn-danger"   style="margin-left:25px;">
                    </div>
            </form>

这是我的 php 代码,用于在我的数据库中插入一条新记录:

    <?php
  $connect=mysqli_connect("localhost","root","","mydb");

  if (mysqli_connect_errno()) {
    echo ("Échec de la connexion : %s\n" . mysqli_connect_error());
    exit();
}


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

$query = " INSERT INTO 'reservoir' (Code_reservoir, nom_reservoir, adress_reservoir, latitude, longtitude, capacite, cote_radial, espace, pseudo_espace, alimentation)
           VALUES ('$_POST[coderes]', '$_POST[nomres]', '$_POST[adressres]', '$_POST[latitude]', '$_POST[longitude]', '$_POST[capaciteres]', '$_POST[coteradres]', '$_POST[typeres]','$_POST[pseutype]', '$_POST[alimentationres]')";

mysql_query($query,$connect);
mysql_close($connect);
}          

?>

请帮忙 :) 谢谢

【问题讨论】:

  • 尝试 mysqli_error($connect) 以获取最后一个错误,顺便说一下,post 变量必须与查询的其余部分连接起来,如下所示:"VALUES ('" . $_POST[coderes] . "' 等等..
  • 感谢 Thulur 的回复!请你给我写查询!我对此有点困惑!
  • 抱歉,这应该是你的任务 ;)
  • 没错!这个呢: $query = " INSERT INTO 'reservoir' (Code_reservoir, nom_reservoir, adress_reservoir, latitude, longtitude, capacite, cote_radial, espace, pseudo_espace, alimentation) VALUES ('$_POST[coderes]', '$_POST[nomres ]'、'$_POST[adressres]'、'$_POST[latitude]'、'$_POST[longitude]'、'$_POST[capaciteres]'、'$_POST[coteradres]'、'$_POST[typeres]' ,'$_POST[pseutype]', '$_POST[alimentationres]')";
  • @SalasDesign 我的回答有什么问题?

标签: php mysql forms database-connection


【解决方案1】:

我认为错误是您没有选择数据库。

试试这个:

<?php
      $connect=mysqli_connect("localhost","root","","mydb");
    
      if (mysqli_connect_errno()) {
        echo ("Échec de la connexion : %s\n" . mysqli_connect_error());
        exit();
    }

$db_selected = mysqli_select_db("//database name", $connect);

if (!$db_selected)
  {
  die ("Can\'t use this databse : " . mysqli_error());
  }
    
    
        if(isset($_POST['submit'])){
    
    $query = " INSERT INTO 'reservoir' (Code_reservoir, nom_reservoir, adress_reservoir, latitude, longtitude, capacite, cote_radial, espace, pseudo_espace, alimentation)
               VALUES ('$_POST[coderes]', '$_POST[nomres]', '$_POST[adressres]', '$_POST[latitude]', '$_POST[longitude]', '$_POST[capaciteres]', '$_POST[coteradres]', '$_POST[typeres]','$_POST[pseutype]', '$_POST[alimentationres]')";
    
    mysql_query($query,$connect);
    mysql_close($connect);
    }          
    
    ?>

更多帮助可以从这个链接中找到:mysqli_select_db

我不确定,但希望这会奏效。

【讨论】:

  • 非常感谢您的回复!但是我自己解决了我的问题,这是一个小语法问题
  • @SalasDesign 好的...但是你为什么要删除我的答案上的“已接受”标记?我只想要原因(答案中的错误或告诉我它是否没有帮助等)。
  • 实际上我尝试在您的答案中使用代码,但我没有得到我想要的!但我真的很感谢你的贡献:D
【解决方案2】:

您可以用来将许多值从 html 表单传递到数据库的最简单方法之一如下所示。但是你需要关心类似的事情..

1. 必须使用输入类型提交的名称:您可以用这个替换表单中的提交行

<input type="submit" value="Valider" id="Reservoirbtn" class="btn btn-success" name="submit_form">

2.您需要使用与 html 表单输入名称中使用的名称相同的数据库表字段名称。即,表列名必须是纬度、经度、编码器等...

如果您认为您的代码只有连接问题。您可以使用下面代码中的连接语句,显示相应的连接错误(第 1-7 行)

php代码

<?php
define(“DBHOST”,”localhost”);
define(“DBUNAME”,”root”);
define(“DBPASSWORD”,””);
define(“DBNAME”,”mydb”);
mysql_connect(DBHOST,DBUNAME,DBPASSWORD)or die(‘cant connect to DB’);
mysql_select_db(DBNAME)or die(“cant select db”);
$inputs = array();
$skip_input=array(‘submit_form’);
$error =array();
if(isset($_POST['submit_form']))
{
foreach($_POST as $key=>$value)
{
if(!in_array($key,$skip_input))
{
$inputs[$key] =$value;
}
}
}
$fieldValues = implode(“‘,’”,array_values($inputs));
$table = ‘reservoir’;
$sql=”INSERT INTO $table VALUES (‘$fieldValues’)”;
mysql_query($sql);
echo “inserted successfully”;
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 2017-06-21
    • 1970-01-01
    • 2016-07-19
    • 2020-05-29
    • 1970-01-01
    • 2013-12-01
    相关资源
    最近更新 更多