我想将某些数据从表单插入数据库表“求和”。但这不起作用。我使用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/