我在核心php应用程序中遇到了一个删除操作错误
我已经为php实践创建了一个小应用程序。我已成功创建登录和插入功能。我在dashboard.php上遇到删除功能错误 登录 用户名:admin 密码:12345 以下是dashboard.php文件的php代码:我在核心php应用程序中遇到了一个删除操作错误,php,mysql,crud,Php,Mysql,Crud,我已经为php实践创建了一个小应用程序。我已成功创建登录和插入功能。我在dashboard.php上遇到删除功能错误 登录 用户名:admin 密码:12345 以下是dashboard.php文件的php代码: <?php include 'conntect.php'; if (isset($_GET['delete'])){ $del=$_GET['delete']; $sql="delete from partners where partne
<?php
include 'conntect.php';
if (isset($_GET['delete'])){
$del=$_GET['delete'];
$sql="delete from partners where partner_id=".$del;
mysqli_query($conn, $sql);
header('location:dashboard.php');
}
mysqli_close($conn);
?>
<td><a href="dashboard.php?delete='.$row["partner_id"].'" style="color:red;"><i class="far fa-window-close"></i></a></td>
单击“删除”图标时,我想从数据库中删除记录。$sql=“从合作伙伴处删除,其中合作伙伴\u id='{$del}' 将要删除的
替换为以下代码:
<td><a href="dashboard.php?delete=<?php echo $row["partner_id"]; ?>" style="color:red;"><i class="far fa-window-close"></i></a></td>
如果进一步使用了
mysqli
,请不要关闭MySQL连接。您需要共享“connect.php”文件的内容。出现错误的原因是因为“mysqli_query($conn,$sql)”希望参数1是(mysqli$link)或(mysqli$object)
检查此项()
面向对象风格
mysqli::query(字符串$query[,int$resultmode=mysqli\u STORE\u RESULT]):混合
程序风格
mysqli_查询(mysqli$link,string$query[,int$resultmode=mysqli_存储结果]):混合
要进行快速修复,可以将我的这段代码放在connect.php文件中
class Connect {
private $DB_NAME = 'db_name'; //database name
private $DB_HOST = 'localhost'; //database host
private $DB_USER = 'root'; //database user
private $DB_PASS = ''; //database password
private $QUERY_DEBUG = 'on'; //enable debug locally and disable in production
public static $conn;
public static $pdo_conn;
/**
constructor function
**/
public function __construct() {
try{
//initialize a static mysqli connection object or die on error
self::$conn = new mysqli($this->DB_HOST, $this->DB_USER, $this->DB_PASS,
$this->DB_NAME)or
die('unable to select Database, Connection Error'. mysqli_error());
} catch (Exception $e) {
die('unable to select Database, Connection Error'. $e->getMessage());
}
/**
//if you are using pdo, uncomment this block of code
$pdo = "mysql:host=" . $this->DB_HOST . ";dbname=" . $this->DB_NAME;
try{
self::$pdo_conn = new PDO($pdo, $this->DB_USER, $this->DB_PASS);
}catch (Exception $e)
{
die('unable to select Database, Connection Error'. $e->getMessage());
}
**/
}
/**
function to encapsulate your queries
**/
public function safeQuery($query="")
{
if(empty($query)){return false;}
if($this->QUERY_DEBUG == "off")//check query debug mode
{
//$result = mysqli_query(self::$conn,$query) -> procedural way
$result = self::$conn->query($query) or
die("An error occured");
}
else
{
//$result = mysqli_query(self::$conn,$query) -> procedural way
$result = self::$conn->query($query)
or die("query falied:"."<li>ERROR_NO = ".mysqli_errno(self::$conn)."
<li>ERROR= ". mysqli_error(self::$conn).$query);
}
return $result;
}
}
类连接{
private$DB_NAME='DB_NAME';//数据库名称
private$DB_HOST='localhost';//数据库主机
private$DB_USER='root';//数据库用户
私有$DB_PASS='';//数据库密码
private$QUERY_DEBUG='on';//在本地启用调试并在生产中禁用
公共康涅狄格州;
公共静态$pdo_conn;
/**
构造函数
**/
公共函数构造(){
试一试{
//初始化静态mysqli连接对象或在出现错误时死亡
self::$conn=newmysqli($this->DB\u HOST,$this->DB\u USER,$this->DB\u PASS,
$this->DB_NAME)或
die('无法选择数据库,连接错误'.mysqli_Error());
}捕获(例外$e){
die('无法选择数据库,连接错误'$e->getMessage());
}
/**
//如果您使用的是pdo,请取消注释这段代码
$pdo=“mysql:host=”.$this->DB\u host.“dbname=”.$this->DB\u NAME;
试一试{
self::$pdo_conn=new pdo($pdo,$this->DB_USER,$this->DB_PASS);
}捕获(例外$e)
{
die('无法选择数据库,连接错误'$e->getMessage());
}
**/
}
/**
函数来封装查询
**/
公共函数safeQuery($query=”“)
{
if(空($query)){return false;}
if($this->QUERY\u DEBUG==“off”)//检查查询调试模式
{
//$result=mysqli\u查询(self::$conn$query)->过程方式
$result=self::$conn->query($query)或
死亡(“发生错误”);
}
其他的
{
//$result=mysqli\u查询(self::$conn$query)->过程方式
$result=self::$conn->query($query)
或者死(“查询失败:”错误号=“.mysqli\u错误号(self:$conn)。”
ERROR=“.mysqli_ERROR(self::$conn)。$query);
}
返回$result;
}
}
然后,要在代码中的任何地方使用mysqli查询,只需执行以下操作
<?php
include 'conntect.php';
$conn = new Connect();
//**Note** $conn exposes a static $conn property(which is a mysqli connection object
if (isset($_GET['delete'])){
$del=$_GET['delete'];
$sql="delete from partners where partner_id=".$del;
$conn->safeQuery($sql); // (Recommended) Object oriented way
//mysqli_query($conn::$conn, $sql); // procedural way
header('location:dashboard.php');
}
//mysqli_close($conn::$conn);
?>
<td><a href="dashboard.php?delete='.$row["partner_id"].'" style="color:red;"><i class="far fa-window-close"></i></a></td>
如果您不告诉我们更多有关错误的信息,那么很难为您提供帮助。什么线路?什么消息?呈现数据的表显示的javascript
或前端代码在哪里;看起来像SQL注入。我会在有人删除您的数据之前修复它…PHP警告:mysqli_close()期望参数1为mysqli,在第12行的/home/thewebtree/public_html/projects/dashboard.PHP中给出空值