Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个代码只删除一个单词名的书_Php_Mysqli - Fatal编程技术网

Php 为什么这个代码只删除一个单词名的书

Php 为什么这个代码只删除一个单词名的书,php,mysqli,Php,Mysqli,出于某种原因,当我调用deletebook.php时,查询始终为true,但只有当名称中有一个单词时,它才会实际删除该书。任何建议我都被困了一段时间,需要一些帮助。 $book = $_GET["book"]; $email = $_SESSION["email"]; $servername = ""; $username = ""; $password = ""; $dbname = ""; $conn = new mysqli($s

出于某种原因,当我调用deletebook.php时,查询始终为true,但只有当名称中有一个单词时,它才会实际删除该书。任何建议我都被困了一段时间,需要一些帮助。
    $book = $_GET["book"];
    $email = $_SESSION["email"];

    $servername = "";
    $username = "";
    $password = "";
    $dbname = "";

    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    // sql to delete a record
    $sql = "DELETE FROM books WHERE email = '". $email ."' and name = '". $book ."'";

    if ($conn->query($sql) === TRUE) {
        echo "Record deleted successfully";
    } else {
        echo "Error deleting record: " . $conn->error;
    }

    $conn->close();



?>
这是managebooks.php中的相关代码

while($row = mysql_fetch_array($result)) {

            echo    "<div id='book'>
                <ol>
                <li>"; 
            echo    $row['name'];
            echo    "</li><li>";
            echo    $row['price'];
            echo    "</li>
                </ol>
                <form action='deleteBook.php' method='get'>
                <input type='hidden' name='book' value=". $row['name'] ." />
                <button type='submit'>Delete</button></form></div>";

        }
while($row=mysql\u fetch\u array($result)){
回声“
  • “; echo$row['name']; 回声“
  • ”; echo$行[‘价格’]; 回声“
  • 删除”; }
    我认为你应该让你的sql字符串更干净,这可能会有帮助

    $sql="DELETE FROM books WHERE email='$email' AND name='$book'";
    
    您还可以打印$name的值,以实际查看发送到$sql字符串的内容

    尝试将“value”的值放在引号中。另外,在回显多行html时尝试使用;这使得计算报价更容易。
    (最好将所有HTML属性的所有值加倍引用。)

    引用值
    value='“$row['name']。”/>
    你真的应该有id,并将它们用于这类事情,所以我建议你用书名contain
    '
    ”>测试你的代码,例如我最喜欢的书名是
    ”>alert()谢谢abra尸体!我现在觉得很傻,今天底层的人都很忙