-1

私はこれを理解することはできません。私は周りやここや他の場所を見てきましたが、彼らは皆、この仕事に非常に遠回しに取り組んでいるようです. メンバーを削除するためのページを作成しました。ユーザーがユーザー名を入力し、[選択] をクリックすると、データベースから特定のレコードが取得されます。その後、ユーザーは削除ボタンをクリックしてユーザーを削除できます。私が抱えている問題は、削除部分が機能しないことです。html は次のとおりです。

<?php
require_once('../include/officer_session_timeout_db.inc.php');
if (isset($_POST['viewmember'])) {
 $username = trim($_POST['username']);
require_once('../include/viewmember.inc.php');
}
?>

上記の部分は正常に動作します。機能していないのは削除セクションだけです。

<?php 
if (isset($_POST['delete'])) {
    require_once('../include/deletemember.inc.php');
}
?> 



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
</head>

<body>



<div id="MainContentBox">




   <Div id="MainContentTitle">DELETE A MEMBER!!!!<br>


          <div id="MainContentText">



          <form id="viewmember" method="post" action="">

User Name: <input type="text" name="username" id="username">  
 <input name="viewmember" type="submit" id="viewmember" value="Search">

</form>

<?php echo $firstname;?> <?php echo $lastname;?>        

          <fieldset style="width:500px">
<legend>Address</legend>
<?php echo $address;?><br>
<?php echo $city;?><br>
<?php echo $state;?> , <?php echo $zip;?>

</fieldset>
<fieldset style="width:500px">
<legend>Contact Information</legend>
E-Mail:<a href="mailto:<?php echo $email;?>"><?php echo $email;?></a> <br>
Home Phone: <?php echo $homephone;?><br>
Cell Phone: <?php echo $cellphone;?><br>
</fieldset>

 <?php
if (isset($success)) {
echo "<p>$success</p>";
} elseif (isset($errors) && !empty($errors)) {
echo '<ul>';
foreach ($errors as $error) {
echo "<li>$error</li>";
}
echo '</ul>';
}
?>

<form id="delete" method="post" action="">

<input name="delete" type="submit" id="delete" value="DELETE MEMBER!!!!">
</form>
         </div>
          </div>

     </body> 

deletemember.inc.php ファイルのコードは次のとおりです。

<?php
require_once('connection.inc.php');
  $conn = dbConnect('write');
    // prepare SQL statement
$sql = "DELETE FROM members WHERE username='$username'";
  $stmt = $conn->stmt_init();
  $stmt = $conn->prepare($sql);
  // bind parameters and insert the details into the database
  $stmt->bind_param('s', $username);
  $stmt->execute();
 if ($stmt->affected_rows == 1) {
    $success = "Your information has been updated.";
    } else {
    $errors[] = 'Sorry, there was a problem with the database.';
  }
4

2 に答える 2

1

パラメータ「s」がどこにあるかわかりません。

パラメータ「s」は存在しないため、バインドする必要はありません。

于 2013-09-22T02:16:56.533 に答える
1

使う '?' バインドするパラメーターをマークします。これを試して:

$sql = "DELETE FROM members WHERE username=?";
$stmt = $conn->stmt_init();
$stmt = $conn->prepare($sql);
// bind parameters and insert the details into the database
$stmt->bind_param('s', $username);

mysqli は、パラメーターをバインドするクエリ内の場所を知る必要があるため、各置換に?. 詳細と例については、bind_param のドキュメントを参照してください: http://php.net/manual/en/mysqli-stmt.bind-param.php

于 2013-09-22T01:58:07.517 に答える