【问题标题】:PHP Delete Function not workingPHP删除功能不起作用
【发布时间】:2018-07-17 05:54:57
【问题描述】:

已经环顾四周,但仍然像没有明天一样挣扎。只是试图让删除按钮工作。但它变得复杂,因为删除功能没有在一个文件上完成。

用户当前在 crud/view.php 文件中

<?php 

session_start();

if(isset($_SESSION['u_uid']))

$uid = $_SESSION['u_id'];

require_once('connect.php');

$ReadSql = "SELECT * FROM `contact` WHERE users_id=$uid ORDER BY Name";
$res = mysqli_query($connection, $ReadSql);

?>

我有一些功能,但我的删除按钮是:

<td> <input type="button" onClick="deleteme(<?php echo $r['u_uid']; ?>)" name="Delete" value="Delete"></td>

后跟:

function deleteme(delid) {
if(confirm("Are you sure you want to Delete?")){
window.location.href='delete.php?del_id='+delid;
 }
 } 

导致 crud/delete.php

<?php
session_start();
if(isset($_SESSION['u_uid'])){

 require_once('connect.php');

 $select = "DELETE from contact where id='".$_GET['del_id']."'";
 $query = mysqli_query($connection, $select) or die($select);
 }else {

 print_r($_GET['del_id']) 
 ?>

我认为您可以仅在 view.php 上使用删除功能,并摆脱 delete.php。但我不确定该怎么做。

非常感谢!

【问题讨论】:

  • id 是字符串还是整数?如果它是一个 int,那么我会删除单引号。最终,一旦你得到这个工作,你应该查看准备好的语句。
  • Ah id 是一个整数。你指的是哪个单引号?
  • $select = "DELETE from contact where id='".$_GET['del_id']."'"; id=''
  • 对 SQL 注入攻击开放,不要使用此代码
  • 我只是想让它吸引人:(

标签: php mysql mysqli error-handling sql-delete


【解决方案1】:

确保变量确实包含您期望它具有的内容,u_uid 是否真的设置,尝试打印出您的删除查询以确保它构建有效的 SQL 语句。

或者您可以尝试用反引号将表格字段括起来,就像您在 select 语句中所做的那样。

还建议使用准备好的语句来使您的脚本更加安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    相关资源
    最近更新 更多