当我执行此查询时,它返回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')";
另一个问题:当我提交时,似乎查询在执行时返回两次,这意味着两个记录包含一个查询。有人理解吗?
如果您需要更多信息,请询问。
提前致谢。
答案 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代码