在PHP插入查询中不能使用POST变量

时间:2014-02-08 18:38:40

标签: php sql post

在我的PHP文件中,我执行以下操作

<?php
if(isset($_POST['submit'])){
  $con = mysqli_connect(bla);
  $query = "insert into users (name,username,password) values($_POST['name'],$_POST['username'],$_POST['password'])";
}

现在,即使条件不满足,即提交未完成,我也会收到错误。但是当我评论我的$ query = ...行时,没有错误。发生了什么事?

4 个答案:

答案 0 :(得分:1)

您需要在变量周围放置'".,如下所示:

$query = "insert into users (name,username,password) values('".$_POST['name']."','".$_POST['username']."','".$_POST['password']."')";

答案 1 :(得分:1)

$_POST['...']放在{}之间 像'{$_POST['password']}','...一样
将此代码放在最后显示错误:

if (mysqli_connect_errno()) {
  echo mysqli_connect_error();
  exit();
}

答案 2 :(得分:0)

当你将一个数组变量插入到一个字符串中时,有两种方法可以编写它:在变量周围加上大括号,或者在索引中省略引号:

$query = "insert into users (name,username,password) 
          values('{$_POST['name']}', {'$_POST['username']}', {'$_POST['password']'})";

您还需要查询本身的引号,以获得正确的SQL语法。

答案 3 :(得分:0)

首先考虑将post值放入局部变量,然后输入局部变量作为insert查询的值。例如:

$ name = $ _POST ['name'];

$ query = INSERT INTO users(name)VALUES(“$ name”)