Дополнение от 23.06.2012PHP SQL не обновит данные
Запрос на обновление по-прежнему не работает. Получил совет от Рене Кросса и сделал некоторую очистку кода и наткнулся на несколько недостающих точек с запятой и т. Д., Однако запрос обновления все еще не работает.
Вот adminUpdate.php
<?php
\t
\t require 'Connect.php';
\t $staffID = null;
\t if (!empty($_GET['staffID'])) {
\t \t $staffID = $_REQUEST['staffID'];
\t }
\t
\t if (null==$staffID) {
\t \t header("Location: ManageAdministrator.php");
\t }
\t
\t if (!empty($_POST)) {
\t \t // keep track validation errors
\t \t
\t \t $adminNameError = null;
\t \t $emailError = null;
\t \t $SKGError = null;
\t \t $ExtnError = null;
\t \t
\t \t // keep track post values
\t \t
\t \t $adminName = $_POST['adminName'];
\t \t $email = $_POST['email'];
\t \t $SKG = $_POST['SKG'];
\t \t $Extn = $_POST['Extn'];
\t \t
\t \t // validate input
\t \t $valid = true;
\t \t
\t \t if (empty($adminName)){
\t \t \t $adminNameError = "Please enter Administrator Name";
\t \t \t $valid = false;
\t \t }
\t \t
\t \t if (empty($email)) {
\t \t \t $emailError = 'Please enter Email Address';
\t \t \t $valid = false;
\t \t } else if (!filter_var($email,FILTER_VALIDATE_EMAIL)) {
\t \t \t $emailError = 'Please enter a valid Email Address';
\t \t \t $valid = false;
\t \t }
\t \t
\t \t if (empty($SKG)) {
\t \t \t $SKGError = 'Please choose SKG';
\t \t \t $valid = false;
\t \t }
\t \t if(empty($Extn)){
\t \t \t $ExtnError = "Please enter Extension Number";
\t \t \t $valid = false;
\t \t }
\t \t
\t \t
\t \t // update data
\t \t if ($valid) {
\t \t \t $pdo = Database::connect();
\t \t \t $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
\t \t \t $sql = "UPDATE admin set adminName ='$adminName', email ='$email', SKG ='$SKG', Extn ='$Extn' WHERE staffID = '$staffID'";
\t \t \t $q = $pdo->prepare($sql);
\t \t \t $q->execute(array($staffID,$adminName,$email,$SKG,$Extn));
\t \t \t Database::disconnect();
\t \t \t header("Location: ManageAdministrator.php");
\t \t }
\t } else {
\t \t $pdo = Database::connect();
\t \t $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
\t \t $sql = "SELECT * FROM admin where staffID = ?";
\t \t $q = $pdo->prepare($sql);
\t \t $q->execute(array($staffID));
\t \t $data = $q->fetch(PDO::FETCH_ASSOC);
\t \t $adminName = $data['adminName'];
\t \t $email = $data['email'];
\t \t $SKG = $data['SKG'];
\t \t $Extn = $data['Extn'];
\t \t $password = $data['password'];
\t \t Database::disconnect();
\t }
?>
<!DOCTYPE html>
<html lang="en">
\t <head>
\t \t \t <title>Update Administrator</title>
\t \t <meta charset="utf-8">
\t \t <meta http-equiv="X-UA-Compatible" content="IE=edge">
\t \t <meta name="viewport" content="width=device-width, initial-scale=1">
\t \t <meta name="description" content="">
\t \t <meta name="author" content="Capability Management">
\t \t <!-- CSS External Link -->
\t \t <link href="css/bootstrap.min.css" rel="stylesheet">
\t \t <link href="css/sb-admin.css" rel="stylesheet">
\t \t <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
\t </head>
\t <body>
\t \t \t <script src="js/jquery.js"></script>
\t \t \t <script src="js/bootstrap.min.js"></script>
<div id="wrapper">
\t <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
\t <div class="navbar-header">
\t \t <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
\t \t <span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
\t \t </button>
\t \t <a class="navbar-brand" href="HomePage.php"><b> Training Log Database </b></a>
\t \t </div>
\t \t <ul class="nav navbar-right top-nav">
\t <li class="dropdown">
\t <!-- PHP REFER LOGIN NAME-->
\t \t <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> M Farhan M Fazli <b class="caret"></b></a>
\t \t \t <ul class="dropdown-menu">
\t \t \t \t <li>
\t \t \t \t <a href="MyProfile.php"><i class="fa fa-fw fa-user"></i> Profile</a>
\t \t \t </li>
\t \t \t \t <li class="divider"></li>
\t \t \t \t <li>
<!-- PHP LOGOUT FUNCTION -->
<a href="LoginPage.html"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
</li>
</ul>
</li>
</ul>
<!-- Sidebar Menu Items start here -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li>
<a href="HomePage.php"><i class="fa fa-fw fa-dashboard"></i> Home</a>
</li>
<li>
<a href="ManageAdministrator.php"><i class="fa fa-fw fa-bar-chart-o"></i> Manage Administrator</a>
</li>
<li>
<!-- Add new pages here -->
<a href="#"><i class="fa fa-fw fa-bar-chart-o"></i> Manage Staff</a>
</li>
<li>
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-edit"></i> Manage Training<i class="fa fa-fw fa-caret-down"></i></a>
<ul id="demo" class="collapse">
<li>
<a href="TrainingList.php">Training Information</a>
</li>
<li>
<a href="#">TBA</a>
</li>
</ul>
</li>
<li>
<a href="javascript:;" data-toggle="collapse" data-target="#demo1"><i class="glyphicon glyphicon-wrench"></i> Tools for Administrator<i class="fa fa-fw fa-caret-down"></i></a>
<ul id="demo1" class="collapse">
<li><a href="#"> Add News </a></li>
<li><a href="#"> Add Announcement </a></li>
<li><a href="#"> Search News</a> </li>
<li><a href="#"> Search Announcement </a></li>
<li><a href="#"> View My Post </a></li>
</ul>
</li>
<li>
<a href="#"><i class="glyphicon glyphicon-info-sign"></i> About</a>
</li>
<li>
<a href="#"><i class="glyphicon glyphicon-question-sign"></i> FAQs</a>
</li>
</div>
<!-- /.navbar-collapse -->
</nav>
<div id="page-wrapper">
\t <div class="container-fluid">
\t \t <div class="row col-lg-12">
\t \t \t <h2 class="page-header"> Update Administrator Account </h2>
\t \t \t <div class="row col-lg-12">
\t \t \t \t <h3> Administrator details </h3>
\t \t \t \t <div class="row col-lg-12">
\t \t \t \t \t \t <form class="form-horizontal form-group" action="adminUpdate.php?id=<?php echo $staffID?>" method="post">
\t \t \t \t \t \t <!-- \t <div class="form-group col-lg-12 <?php echo !empty($staffIDError)?'error':'';?>">
\t \t \t \t \t \t \t \t \t <label>Administrator Staff ID</label>
\t \t \t \t \t \t \t \t <input class="form-control" name="staffID" type="text" value="<?php echo !empty($staffID)?$staffID:'';?>">
\t \t \t \t \t \t \t \t \t \t \t <?php if (!empty($staffIDError)): ?>
\t \t \t \t \t \t \t \t \t \t \t \t <span class="help-inline"><?php echo $staffIDError;?></span>
\t \t \t \t \t \t \t \t \t \t \t <?php endif; ?>
\t \t \t \t \t \t \t \t </div>-->
\t \t \t \t \t \t \t \t <div class="form-group col-lg-12 <?php echo !empty($adminNameError)?'error':'';?>">
\t \t \t \t \t \t \t \t \t <label>Administrator Name</label>
\t \t \t \t \t \t \t \t <input class="form-control" name="adminName" type="text" value="<?php echo !empty($adminName)?$adminName:'';?>">
\t \t \t \t \t \t \t \t \t \t \t <?php if (!empty($adminNameError)): ?>
\t \t \t \t \t \t \t \t \t \t \t \t <span class="help-inline"><?php echo $adminNameError;?></span>
\t \t \t \t \t \t \t \t \t \t \t <?php endif; ?>
\t \t \t \t \t \t \t \t </div>
\t \t \t \t \t \t \t \t <div class="form-group col-lg-12 <?php echo !empty($emailError)?'error':'';?>">
\t \t \t \t \t \t \t \t \t <label>Administrator Email</label>
\t \t \t \t \t \t \t \t <input class="form-control" name="email" type="text" value="<?php echo !empty($email)?$email:'';?>">
\t \t \t \t \t \t \t \t \t \t \t <?php if (!empty($emailError)): ?>
\t \t \t \t \t \t \t \t \t \t \t \t <span class="help-inline"><?php echo $emailError;?></span>
\t \t \t \t \t \t \t \t \t \t \t <?php endif; ?>
\t \t \t \t \t \t \t \t </div>
\t \t \t \t \t \t \t \t <div class="form-group col-lg-12 <?php echo !empty($ExtnError)?'error':'';?>">
\t \t \t \t \t \t \t \t \t <label> Extension Number </label>
\t \t \t \t \t \t \t \t \t \t <input class="form-control" name="Extn" type="text" value="<?php echo !empty($Extn)?$Extn:'';?>">
\t \t \t \t \t \t \t \t \t \t \t <?php if (!empty($ExtnError)): ?>
\t \t \t \t \t \t \t \t \t \t \t \t <span class="help-inline"><?php echo $ExtnError;?></span>
\t \t \t \t \t \t \t \t \t \t \t <?php endif; ?>
\t \t \t \t \t \t \t \t \t </label>
\t \t \t \t \t \t \t \t </div>
\t \t \t \t \t \t \t \t <div class="form-group col-lg-12 <?php echo !empty($SKGError)?'error':'';?>">
\t \t \t \t \t \t \t \t \t <label>SKG</label>
\t \t \t \t \t \t \t \t \t \t <select class="form-control" name="SKG" value="<?php echo !empty($SKG)?$SKG:'';?>">
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 09 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 18 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 20 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 16 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 11 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 13 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 14 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 12 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 15 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 10 </option>
\t \t \t \t \t \t \t \t \t \t \t <option> SKG 25 </option>
\t \t \t \t \t \t \t \t \t \t </select>
\t \t \t \t \t \t \t \t \t \t \t <?php if (!empty($SKGError)): ?>
\t \t \t \t \t \t \t \t \t \t \t \t <span class="help-inline"><?php echo $SKGError;?></span>
\t \t \t \t \t \t \t \t \t \t \t <?php endif; ?>
\t \t \t \t \t \t \t \t </div>
\t \t \t \t \t \t \t <!-- \t <div class="form-group col-lg-12 <?php echo !empty($passwordError)?'error':'';?>">
\t \t \t \t \t \t \t \t \t <label>Password</label>
\t \t \t \t \t \t \t \t \t \t <input type="password" name="password" id="password" class="form-control" placeholder="Password" value="<?php echo !empty($password)?$password:'';?>">
\t \t \t \t \t \t \t \t \t \t \t <?php if (!empty($passwordError)): ?>
\t \t \t \t \t \t \t \t \t \t \t \t <span class="help-inline"><?php echo $passwordError;?></span>
\t \t \t \t \t \t \t \t \t \t \t <?php endif; ?> -->
\t \t \t \t \t \t \t \t </div>
\t \t \t \t \t \t \t \t <div class="form-actions col-lg-12">
\t \t \t \t \t \t \t \t \t \t <button type="submit" class="btn btn-success">Update</button>
\t \t \t \t \t \t \t \t \t \t <a class="btn btn-default" href="ManageAdministrator.php">Back</a>
\t \t \t \t \t \t \t \t </div>
\t \t \t \t \t \t \t \t
\t \t \t \t \t </form>
\t \t \t \t </div>
\t \t \t </div>
\t \t </div>
\t </div>
</div>
</div><!--wrap--> \t
\t </body>
</html>
\t \t \t
Вот connect.php
<?php
class Database
{
\t private static $dbName = 'tlad' ;
\t private static $dbHost = 'localhost' ;
\t private static $dbUsername = 'root';
\t private static $dbUserPassword = '';
\t
\t private static $cont = null;
\t
\t public function __construct() {
\t \t exit('Init function is not allowed');
\t }
\t
\t public static function connect()
\t {
\t // One connection through whole application
if (null == self::$cont)
{
try
{
self::$cont = new PDO("mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword);
}
catch(PDOException $e)
{
die($e->getMessage());
}
}
return self::$cont;
\t }
\t
\t public static function disconnect()
\t {
\t \t self::$cont = null;
\t }
}
?>
Вот мой стол:
Как я упоминал ранее, функция чтения, создания и удаления работает, за исключением этой функции обновления.
Обратите внимание: я следил за учебником по созданию CRUD-данных, в то время как его шаблон работал, но моего кода нет. Вот код обучающей программы для шаблона обновления:
<?php
\t
\t require 'database.php';
\t $id = null;
\t if (!empty($_GET['id'])) {
\t \t $id = $_REQUEST['id'];
\t }
\t
\t if (null==$id) {
\t \t header("Location: index.php");
\t }
\t
\t if (!empty($_POST)) {
\t \t // keep track validation errors
\t \t $nameError = null;
\t \t $emailError = null;
\t \t $mobileError = null;
\t \t
\t \t // keep track post values
\t \t $name = $_POST['name'];
\t \t $email = $_POST['email'];
\t \t $mobile = $_POST['mobile'];
\t \t
\t \t // validate input
\t \t $valid = true;
\t \t if (empty($name)) {
\t \t \t $nameError = 'Please enter Name';
\t \t \t $valid = false;
\t \t }
\t \t
\t \t if (empty($email)) {
\t \t \t $emailError = 'Please enter Email Address';
\t \t \t $valid = false;
\t \t } else if (!filter_var($email,FILTER_VALIDATE_EMAIL)) {
\t \t \t $emailError = 'Please enter a valid Email Address';
\t \t \t $valid = false;
\t \t }
\t \t
\t \t if (empty($mobile)) {
\t \t \t $mobileError = 'Please enter Mobile Number';
\t \t \t $valid = false;
\t \t }
\t \t
\t \t // update data
\t \t if ($valid) {
\t \t \t $pdo = Database::connect();
\t \t \t $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
\t \t \t $sql = "UPDATE customers set name = ?, email = ?, mobile =? WHERE id = ?";
\t \t \t $q = $pdo->prepare($sql);
\t \t \t $q->execute(array($name,$email,$mobile,$id));
\t \t \t Database::disconnect();
\t \t \t header("Location: index.php");
\t \t }
\t } else {
\t \t $pdo = Database::connect();
\t \t $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
\t \t $sql = "SELECT * FROM customers where id = ?";
\t \t $q = $pdo->prepare($sql);
\t \t $q->execute(array($id));
\t \t $data = $q->fetch(PDO::FETCH_ASSOC);
\t \t $name = $data['name'];
\t \t $email = $data['email'];
\t \t $mobile = $data['mobile'];
\t \t Database::disconnect();
\t }
?>
<!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">
\t \t \t <div class="span10 offset1">
\t \t \t \t <div class="row">
\t \t \t \t \t <h3>Update a Customer</h3>
\t \t \t \t </div>
\t \t
\t \t \t \t <form class="form-horizontal" action="update.php?id=<?php echo $id?>" method="post">
\t \t \t \t \t <div class="control-group <?php echo !empty($nameError)?'error':'';?>">
\t \t \t \t \t <label class="control-label">Name</label>
\t \t \t \t \t <div class="controls">
\t \t \t \t \t \t <input name="name" type="text" value="<?php echo !empty($name)?$name:'';?>">
\t \t \t \t \t \t <?php if (!empty($nameError)): ?>
\t \t \t \t \t \t \t <span class="help-inline"><?php echo $nameError;?></span>
\t \t \t \t \t \t <?php endif; ?>
\t \t \t \t \t </div>
\t \t \t \t \t </div>
\t \t \t \t \t <div class="control-group <?php echo !empty($emailError)?'error':'';?>">
\t \t \t \t \t <label class="control-label">Email Address</label>
\t \t \t \t \t <div class="controls">
\t \t \t \t \t \t <input name="email" type="text" value="<?php echo !empty($email)?$email:'';?>">
\t \t \t \t \t \t <?php if (!empty($emailError)): ?>
\t \t \t \t \t \t \t <span class="help-inline"><?php echo $emailError;?></span>
\t \t \t \t \t \t <?php endif;?>
\t \t \t \t \t </div>
\t \t \t \t \t </div>
\t \t \t \t \t <div class="control-group <?php echo !empty($mobileError)?'error':'';?>">
\t \t \t \t \t <label class="control-label">Mobile Number</label>
\t \t \t \t \t <div class="controls">
\t \t \t \t \t \t <input name="mobile" type="text" value="<?php echo !empty($mobile)?$mobile:'';?>">
\t \t \t \t \t \t <?php if (!empty($mobileError)): ?>
\t \t \t \t \t \t \t <span class="help-inline"><?php echo $mobileError;?></span>
\t \t \t \t \t \t <?php endif;?>
\t \t \t \t \t </div>
\t \t \t \t \t </div>
\t \t \t \t \t <div class="form-actions">
\t \t \t \t \t \t <button type="submit" class="btn btn-success">Update</button>
\t \t \t \t \t \t <a class="btn" href="index.php">Back</a>
\t \t \t \t \t \t </div>
\t \t \t \t \t </form>
\t \t \t \t </div>
\t \t \t \t
</div> <!-- /container -->
</body>
</html>
Отправьте свой код здесь. Не как ссылка на репозиторий git. – Jens
И как вы уверены, что не обнаружите ошибку? Вы проверяете ошибки? Что с тобой. – Darren