插入,更新,创建表,查询不在wampserver中工作

时间:2014-02-14 21:22:51

标签: php mysql sql

我一直在使用wampserver进行php项目,但是DML查询对我不起作用。这是我一直在使用的一些测试代码

$query='insert into register(first_name) values("swagmaster")';

echo($query);

$query = mysqli_real_escape_string($connection,$query);

echo"<br>$query";

if(mysqli_real_query($connection,"'".$query."'")===TRUE)
{
    echo"woohoo!";
}
else
{
    echo"query failed";
}
echo(mysqli_error($connection));

运行时我得到以下输出:

  

插入寄存器(first_name)值(“swagmaster”)
  插入寄存器(first_name)值(\“swagmaster \”)查询失败

     

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行“插入寄存器(first_name)值(\”swagmaster \“)'附近使用正确的语法

但是,select语句运行正常。我怀疑问题是在mysql设置中。有什么建议吗?

更新:

使用您的提示组合,查询现在正在运行。谢谢大家!

3 个答案:

答案 0 :(得分:0)

请尝试此查询

$query = "INSERT INTO `register` SET `fieldname`='{$vaue}',`field2`='{$value2}'";

答案 1 :(得分:0)

更改查询
$query='insert into register(first_name) values("swagmaster")';

$query="insert into register(first_name) values('swagmaster')";

同样Fred-ii说你不需要在这里添加'

if(mysqli_real_query($connection,"'".$query."'")===TRUE)

更改为

if(mysqli_real_query($connection,$query)===TRUE)

答案 2 :(得分:0)

您使用了

$query = mysqli_real_escape_string($connection,$query);

但是这在查询中逃脱了所有引用。这是不正确的。对于受保护的SQL注入,您应该仅使用escape函数来代替查询。

对于您的示例,您不需要此字符串。

但是如果你使用变量那么就应该使用它

$value = "swagmaster";
$value =  mysqli_real_escape_string($value);
$query='insert into register(first_name) values("' . $value . '")';

在$ query中已经是正确的查询。并且添加引号不正确。只需使用

if(mysqli_real_query($connection, $query)===TRUE)