SQL插入和提交

时间:2012-09-30 17:18:53

标签: php sql variables insert submit

当我执行此查询时,它返回false,这意味着查询错误。你能搞清楚为什么吗?

$string1 = 'wee';
$string2 = 'wee'; 
$string3 = 'wee'; 
$string4 = 'wee';  

if (isset($_POST['submit'])) {  

    $query = "INSERT INTO data (book, title, content, author)
              VALUES ($string1, $string2, $string3, $string4)";          
    mysql_query($query, $con);    
}

但是,当我输入类似下面的内容时,它返回true并正确插入:

$query = "INSERT into data (book, title, content, author)
          VALUES ('wee', 'wee', 'wee', 'wee')";

另一个问题:当我提交时,似乎查询在执行时返回两次,这意味着两个记录包含一个查询。有人理解吗?

如果您需要更多信息,请询问。

提前致谢。

2 个答案:

答案 0 :(得分:1)

虽然这个问题似乎得到了回答,但您不应该直接在查询中使用用户输入,因为这会为SQL注入漏洞(这可能是错误的mmmay)打开漏洞

如果你看看php.net上的mysql页面(mysql_query),该页面说建议你使用像PDO这样的抽象层(pdo-mysql

使用PDO将允许您将参数绑定到sql查询,以绕过在查询中使用用户输入的安全隐患。

如果您没有将参数绑定到查询中,那么您将度过难关。

答案 1 :(得分:0)

您的字段数据类型是字符串或varchar,因此您需要在它们周围添加“或”。

更改您的查询,如下所示

$query = "INSERT into data (book, title, content, author)VALUES ('".$string1."', '".$string2."',     
         '".$string3."', '".$string4."')";

要解决提交问题,请发布您的HTML代码

相关问题