我想将某些数据从表单插入数据库表“求和”。但这不起作用。我使用PhpStorm IDE,它显示未配置任何数据源来运行此sql,并且未配置sql方言。问题出在哪里 ?

<?php
    $db= new PDO('mysql:host=localhost;dbname=test;cahrset=utf8','root','');
    if(isset($_POST['submit'])){
        $id=$_POST['id'];
        $first=$_POST['first'];
        $second=$_POST['second'];
        $third=$_POST['third'];

        $sql="INSERT INTO sumation VALUES($id,'$first','$second','$third')";
        $db->query($sql);
        echo("<script>alert('Data Inserted Sucessfully !')</script>");
    }

?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
        ID: <input type="text" name="id"><br>
        First: <input type="text" name="first"><br>
        Second: <input type="text" name="second"><br>
        Third: <input type="text" name="third"><br>
        <button type="submit" class="btn-primary" name="submit">Insert </button>
    </form>

</body>
</html>

最佳答案

您的查询有误,INSERT的语法为

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)


所以你的查询看起来像

INSERT INTO sumation (id, first, second, third) VALUES ($id, '$first', '$second', '$third')


您还只是假设您的查询已执行。 PDO查询成功时将返回对象,失败时将返回布尔值false,这意味着您可以将其包装为if语句。

您还应该阅读How can I prevent SQL-injection in PHP?,这基本上意味着您应该使用准备好的语句。

关于javascript - MYSQL数据插入查询不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33941706/

10-12 22:32
查看更多