这个问题在这里已经有答案了:
引用-这个错误在php中是什么意思(36个答案)
如何显示mysqli查询的错误[重复](2个答案)
两年前关门了。
我对php还是新手(昨天刚开始),当我想删除我的数据时,它会这样说
注意:第13行的c:\wamp64\www\helpingclass\delete.php中的未定义索引:bookname
注意:未定义索引:第14行的c:\wamp64\www\helpingclass\delete.php中的数量
注意:未定义的索引:第15行的c:\wamp64\www\helpingclass\delete.php中的price
这是我第13、14、15行的代码
$bookname = $_POST['bookname'];
$quantity = $_POST['quantity'];
$price = $_POST['price'];
我甚至试着把那些13,14,15行改成这个
if(isset($_POST['bookname']) && isset($_POST['bookname'])){
echo $_POST['bookname'];
}
if(isset($_POST['quantity']) && isset($_POST['quantity'])){
echo $_POST['quantity'];
}
if(isset($_POST['price']) && isset($_POST['price'])){
echo $_POST['price'];}
通知未定义的索引已消失,但我仍然无法删除数据:(
这是我的delete.php的完整代码
<?php
include ('connection.php');
session_start();
if (!isset($_SESSION ['userid'])&& empty($_SESSION['userid'])){
header ("location:login.php");
exit;
}
else {
$userid = $_SESSION ['userid'];
}
$bookid = $_GET['bookid'];
$bookname = $_POST['bookname'];
$quantity = $_POST['quantity'];
$price = $_POST['price'];
$query = mysqli_query ($conn, "DELETE FROM book SET WHERE Book_Id='$bookid';");
if ($query == TRUE)
{
echo "<script language='javascript'>";
echo "alert('Deleted.');";
echo "window.location.href='action.php';";
echo "</script>";
}
else
{
echo "<script language='javascript'>";
echo "alert('Delete Failed.');";
//echo "window.location.href='action.php';";
echo "</script>";
}
?>
我真的很感激你的帮助
1条答案
按热度按时间cyej8jka1#
你的代码中有很多问题。
最重要的是,您的数据库查询对sql注入相关的问题是开放的。请使用事先准备好的报表。
参数化版本的示例可以是:
其次,检查变量是否存在,使用
isset
功能。可以同时使用三元运算符。如:
第三,你的
DELETE
查询语句语法错误。你不能使用*
以及SET
. 还有,你呢(int)
屏幕上的打字$bookid
(假设这里是整数)。你也不需要分号(;
)在查询字符串中,使用mysqli_query
功能。具体如下:
从mysql文档中,语法
DELETE
声明如下: