需要帮助使用PDO在PHP中更新表单

时间:2016-02-24 18:03:11

标签: javascript database html5 pdo

除了int中的BDid列之外,所有列都是TEXT格式。我已经使用非预先准备的语句顺利运行代码,但我认为我会使用相同的数据和相同的表来更新它。

不会返回任何错误,但不会影响任何行。

代码没有收到任何错误,但MySQL没有更新

<?php 

  require 'database.php';

  $id = null;
  if ( !empty($_GET['id'])) {
    $id = $_REQUEST['id'];
  }

  if ( null==$id ) {
    header("Location: index.php");
  }

  if ( !empty($_POST)) {
    // keep track validation errors with form fields
    $first_nameError = null;
    $sur_nameError = null;
    $companyError = null;
    $locationError = null;
    $supervisorError = null;
    $departmentError = null;
    $job_descriptionError = null;
    $hire_dateError =null;
    $emailError = null;
    $messageError = null;

    // keep track post values
    $first_name = $_POST['first_name'];
    $sur_name = $_POST['sur_name'];
    $company = $_POST['company'];
    $location = $_POST['location'];
    $supervisor = $_POST['supervisor'];
    $department = $_POST['department'];
    $job_description = $_POST['job_description'];
    $hire_date = $_POST['hire_date'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    // validate input for the field
    $valid = true;
    if (empty($first_name)) {
      $first_nameError = 'Please enter Name';
      $valid = false;
    }
    if (empty($sur_name)) {
      $sur_nameError = 'Please enter Name';
      $valid = false;
    }
    if (empty($company)) {
      $companyError = 'Please selest Company';
      $valid = false;
    }
    if (empty($location)) {
      $locationError = 'Please enter Location';
      $valid = false;
    }
    if (empty($department)) {
      $departmentError = 'Please enter Department';
      $valid = false;
    }
    if (empty($job_description)) {
      $job_descriptionError = 'Please enter Job Description';
      $valid = false;
    }
    if (empty($hire_date)) {
      $hire_dateError = 'Please enter Hire Date';
      $valid = false;
    }
    if (empty($email)) {
      $emailError = 'Please enter Email Address';
      $valid = false;
    } else if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
      $emailError = 'Please enter a valid Email Address';
      $valid = false;
    }

    if (empty($message)) {
      $messageError = 'Please enter Message';
      $valid = false;
    }

    // update data  the field in the database
    if ($valid) {
      $pdo = Database::connect();
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $sql = "UPDATE employee  SET first_name = ?,sur_name = ?, company = ?, location = ?, supervisor = ?, 
      department= ?, job_description =  ?, hire_date = ?, email = ?, message = ? WHERE id = ?";
      $q = $pdo->prepare($sql);
      $q->execute(array($id, $first_name, $sur_name, $company, $location, $supervisor, $department,$job_description, $hire_date, $email, $message));
      Database::disconnect();
      header("Location: index.php");
    }
  } else {
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT * FROM employee where id = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($id));
    $data = $q->fetch(PDO::FETCH_ASSOC);
    $first_name = $data['first_name'];
    $sur_name = $data['sur_name'];
    $company = $data['company'];
    $location = $data['location'];
    $location = $data['supervisor'];
    $department = $data['department'];
    $job_description = $data['job_description'];
    $hire_date = $data['hire_date'];
    $email = $data['email'];
    $message = $data['message'];
    Database::disconnect();
  }
?>

这是我的Html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <link   href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/bootstrap.min.js"></script>
</head>

<body>
    <div class="container">

          <div class="span10 offset1">
            <div class="row">
              <h3>Update a Customer</h3>
            </div>
        This is my form 

            <form class="form-horizontal" action="update.php?id=<?php echo $id?>" method="post">
               <div class="control-group <?php echo !empty($first_nameError)?'error':'';?>">
     <label class="control-label"></label>
        <div class="controls">
     <input name="first_name" required placeholder="First Name" 
         title="First Name" value="<?php echo !empty($first_name)?$first_name:'';?>">
      <?php if (!empty($first_nameError)): ?>
        <span class="help-inline"><?php echo $first_nameError;?></span>
          <?php endif; ?>
        </div>
    </div>

  <div class="control-group <?php echo !empty($sur_nameError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <input name="sur_name" required placeholder="Sur Name" title="Sur Name" 
      value="<?php echo !empty($sur_name)?$sur_name:'';?>">
   <?php if (!empty($sur_nameError)): ?>
        <span class="help-inline"><?php echo $sur_nameError;?></span>
          <?php endif; ?>
    </div>
  </div>



 <div class="control-group <?php echo !empty($companyError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <select name="company" class="company" id="company" style="company" 
    title="Company" required placeholder="Company" value="<?php echo !empty($company)?$company:'';?>">
     <option value="Select.." selected>Select....</option>
          <option>HM</option>
          <option>HRA</option>
          <option>HSG</option>
          <option>HAL</option>
          <option>HBN</option>
          <option>HFR</option>
          <option>HPL</option>
          <option>HRD</option>
          <option>HERS</option>
          <option>HPS</option>
          <option>HEA</option>
        </select>
   <?php if (!empty($companyError)): ?>
        <span class="help-inline"><?php echo $companyeError;?></span>
          <?php endif; ?>
    </div>
  </div>
   <div class="control-group <?php echo !empty($locationError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <input name="location" required placeholder="Location" title="Location" 
         value="<?php echo !empty($location)?$location:'';?>">
   <?php if (!empty($locationError)): ?>
        <span class="help-inline"><?php echo $location;?></span>
          <?php endif; ?>
    </div>
  </div>

   <div class="control-group <?php echo !empty($supervisorError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <input name="supervisor" required placeholder="Supervisor" 
    title="Supervisor" value="<?php echo !empty($supervisor)?$supervisor:'';?>">
   <?php if (!empty($supervisorError)): ?>
        <span class="help-inline"><?php echo $supervisor;?></span>
          <?php endif; ?>
    </div>
  </div>
  <div class="control-group <?php echo !empty($departmentError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <select name="department" size="1" class="department" id="department"  style="department" 
            title="Department " required placeholder="Department" value="<?php echo !empty($department)?$department:'';?>">
            <option value="Select" selected>Select</option>
              <option value="FI">Finace</option>
              <option value="CO">Controlling</option>
              <option value="PP">Production Planning</option>
              <option value="SD">Sale &amp; Distribution &amp;Customer Relationship manager</option>
              <option value="WM">Warehouse Managerment</option>
              <option value="MM">Material Managerment</option>
              <option value="HR">Human Resources</option>
              <option value="QM">Quality Management</option>
              <option value="PM">Plant Maintenance</option>
              <option value="IT">Information Technology</option>
              <option value="BO">Back Office</option>
              <option value="SAP">Administrative Group SAP User</option>
              <option value="SAPKEY">Administrative Group SAP Key User</option>
              <option value="ADMIN">Administrative Group Administrators</option>
              <option value="MGMT">Management</option>
            </select>
   <?php if (!empty($departmentError)): ?>
        <span class="help-inline"><?php echo $department;?></span>
          <?php endif; ?>
    </div>
  </div>


      <div class="control-group <?php echo !empty($job_descriptionError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <input name="job_description" required placeholder="Job Description" 
    title="Job Description" value="<?php echo !empty($job_description)?$job_description:'';?>">
   <?php if (!empty($job_descriptionError)): ?>
        <span class="help-inline"><?php echo $job_description;?></span>
          <?php endif; ?>
    </div>
  </div>
  <div class="control-group <?php echo !empty($hire_dateError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <input name= "hire_date" type="date" required placeholder="Hire Date" 
    title="Hire Date" value="<?php echo !empty($hire_date)?$hire_date:'';?>">
   <?php if (!empty($hire_dateError)): ?>
        <span class="help-inline"><?php echo $hire_date;?></span>
          <?php endif; ?>
    </div>
  </div>
  <div class="control-group <?php echo !empty($emailError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <input name="email" type="email" required placeholder="Email" 
    title="Email ID" value="<?php echo !empty($email)?$email:'';?>">
   <?php if (!empty($emailError)): ?>
        <span class="help-inline"><?php echo $email;?></span>
          <?php endif; ?>
    </div>
  </div><div class="control-group <?php echo !empty($messageError)?'error':'';?>">
  <label class="control-label"></label>
      <div class="controls">
  <textarea name="message" cols="20" rows="5" required placeholder="Message" 
    title="Comments"value="<?php echo !empty($message)?$message:'';?>"></textarea>
   <?php if (!empty($messageError)): ?>
        <span class="help-inline"><?php echo $messager;?></span>
          <?php endif; ?>
    </div>

this is the action 
  </div> <div class="form-actions">
              <button type="submit" class="btn btn-success">Update</button>
              <a class="btn" href="index.php">Back</a>
            </div>
          </form>
        </div>

    </div> <!-- /container -->
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

看起来您需要将执行行更改为:

$ q-&gt;执行(数组($ first_name,$ sur_name,$ company,$ location,$ supervisor,$ department,$ job_description,$ hire_date,$ email,$ message,$ id));