コードの主な機能は終了しましたが、削除しようとしている「役に立たない」コードがたくさんあります。
これは例です:
else if(isset($_POST['act']) && $_SESSION['status']<3 && $_POST['act']=='delete_ticket'){
$encid=preg_replace('/\s+/','',$_POST['enc']);
$encid=($encid!='' && strlen($encid)==87) ? $encid:exit();
$mysqli = new mysqli($Hostname, $Username, $Password, $DatabaseName);
$stmt = $mysqli->stmt_init();
if($stmt){
$query = "UPDATE ".$SupportTicketsTable." a
INNER JOIN ".$SupportUserTable." b
ON b.id=a.operator_id
SET b.assigned_tickets= CASE WHEN b.assigned_tickets!='0' THEN (b.assigned_tickets-1) ELSE b.assigned_tickets END
WHERE a.enc_id=?";
if($prepared = $stmt->prepare($query)){
if($stmt->bind_param('s', $encid)){
if($stmt->execute()){
$query = "DELETE FROM ".$SupportMessagesTable." WHERE `ticket_id`=(SELECT `id` FROM ".$SupportTicketsTable." WHERE `enc_id`=?) ";
if($prepared = $stmt->prepare($query)){
if($stmt->bind_param('s', $encid)){
if($stmt->execute()){
$query = "SELECT enc FROM ".$SupportUploadTable." WHERE `ticket_id`=?";
if($prepared = $stmt->prepare($query)){
if($stmt->bind_param('s', $encid)){
if($stmt->execute()){
$stmt->store_result();
$result = $stmt->bind_result($mustang);
if($stmt->num_rows>0){
$path='../upload/';
while (mysqli_stmt_fetch($stmt)) {
if(file_exists($path.$mustang)){
file_put_contents($path.$mustang,'');
unlink($path.$mustang);
}
}
}
$query = "DELETE FROM ".$SupportUploadTable." WHERE `ticket_id`=?";
if($prepared = $stmt->prepare($query)){
if($stmt->bind_param('s', $encid)){
if($stmt->execute()){
$query = "DELETE FROM ".$SupportFlagTable." WHERE `enc_id`=?";
if($prepared = $stmt->prepare($query)){
if($stmt->bind_param('s', $encid)){
if($stmt->execute()){
$query = "DELETE FROM ".$SupportTicketsTable." WHERE `enc_id`=?";
if($prepared = $stmt->prepare($query)){
if($stmt->bind_param('s', $encid)){
if($stmt->execute()){
echo json_encode(array(0=>'Deleted'));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
echo json_encode(array(0=>mysqli_stmt_error($stmt)));
exit();
}
ご覧のとおり、mysqli 接続のステートメントが多すぎif
ます。これは削除したい部分です。削除する方法はありますか? try
と の間にラップしようとしましcatch
たが、コードはとにかく成功を返しますecho
(これは AJAX 呼び出しです)。
mysqli の try および catch 関数に問題があることを読んだので、PDO を調べましたが、私は専門家ではなく、投稿したコードと同じ結果が得られるかどうかわかりませんそれで、エラーモードを に変更する必要があることも読みましたがPDO::ERRMODE_EXCEPTION
、その点がよくわかりませんでした。
基本的に: PDO がエラーを処理する方法を説明できる人はいますか?