Php 无法在MariaDB中执行查询

Php 无法在MariaDB中执行查询,php,database,mariadb,Php,Database,Mariadb,大家好,我正在更新数据库中的product表 用户必须输入产品的id才能进行更新 这是表格 <form id="myform"method="post"action="update.php"> <table class="userinf"> <tr> <td><label class="labelii">PID</label>&l

大家好,我正在更新数据库中的product表 用户必须输入产品的id才能进行更新 这是表格

            <form id="myform"method="post"action="update.php">
        <table class="userinf">
            <tr>
                <td><label class="labelii">PID</label></td>
                <td><input id ="edtxt" class ="itxt"type="text" name="PID"required></td>
                <td></td>
            </tr>
            <tr>
                <td><label class="labelii">Name</label></td>
                <td><input id ="iitxt1" class ="itxt"type="text" name="Name" r></td>
                <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td>
            </tr>
            <tr>
                <td><label class="labelii">Picture</label></td>
                <td><input id ="iitxt2" class ="itxt" type="text" name="Picture" ></td>
                <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td>
            </tr>
            <tr>
                <td><label class="labelii">Price</label></td>
                <td><input id ="iitxt3" class ="itxt" type = "text" name="Price" pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)"></td>
                <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td>
            </tr>
            <tr>
                <td><label class="labelii">Type</label></td>
                <td><input id ="iitxt4" class ="itxt" type="text" name="Type"></td>
                <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td>
            </tr>
            <tr>
                <td><label class="labelii">Stock</label></td>
                <td><input id ="iitxt5" class ="itxt"type="number" name="Stock"></td>
                <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td>
            </tr>
            <tr>
                <td></td>
                <td><button type="submit" class="Ebutton" onclick="submitform()">Update All</button></td>
                <td></td>
            </tr>
        </table>
    </form>

PID
名称
更新
图画
更新
价格
更新
类型
更新
股票
更新
全部更新
这是进行更新的php代码,我从数据库中查询它

            <?php
        if(isset($_POST['PID'])){
            $PID=$_POST['PID'];
        }
        if(isset($_POST["Name"]) && isset($_POST["Picture"]) && isset($_POST["Price"]) && isset($_POST["Type"]) && isset($_POST["Stock"])){
            $Name=$_POST['Name'];
            $Picture=$_POST['Picture'];
            $Price=floatval($_POST['Price']);
            $Type=$_POST['Type'];
            $Stock=intval($_POST['Stock']);
            $query="UPDATE `product` SET `Name` = '$Name' , `Picture` = '$Picture', `Price` = '$Price' ,`Type` = '$Type' ,`Stock` = '$Stock' WHERE `product`.`PID` = '$PID'";
        }
        if (isset($_POST['Name'])){ 
            $Name=$_POST['Name'];
            $query="UPDATE `product` SET `Name` = '$Name' WHERE `product`.`PID` = '$PID'";
        }
        else if(isset($_POST['Picture'])){
            $Picture=$_POST['Picture'];
            $query="UPDATE `product` SET `Picture` = '$Picture' WHERE `product`.`PID` = '$PID'";
        }
        else if( isset($_POST['Price'])){
            $Price=floatval($_POST['Price']);
            $query="UPDATE `product` SET `Price` = '$Price' WHERE `product`.`PID` = '$PID'";
        }
        else if(isset($_POST['Type'])){
            $Type=$_POST['Type'];
            $query="UPDATE `product` SET `Type` = '$Type' WHERE `product`.`PID` = '$PID'";
        }
        else if(isset($_POST['Stock'])){
            $Stock=intval($_POST['Stock']);
            $query="UPDATE `product` SET `Stock` = '$Stock' WHERE `product`.`PID` = '$PID'";
        }

这只是DB服务器返回的DB API错误,与您的代码语言无关。它表示您传递了无效的SQL语句

在第一个$query赋值语句中有一个额外的WHERE语句


更新:zainab,我看到你的编辑了,现在,原来的问题解决了吗

如果
$\u POST[“Name”]
是,比如说,
O'Brian
,您将得到一个语法错误。转义来自

的任何内容也请注意,返回错误的是数据库本身,因此当它说“第1行”时,它不是指您的代码,而是指您试图运行的语句的第1行。我如何知道它运行的是哪条语句,因为当代码开始运行时,它只是更改了产品的名称,我不知道为什么要从数据库中查询它自己,我只是用php变量替换值