所以,我不确定问题是什么,但是,当我尝试插入表格时,它不起作用。
所有变量都有效。我已经回应并测试了他们,他们正在努力。
$username = $_SESSION['username'];
$update = $_GET['update'];
mysql_query("INSERT INTO updates (username, update) VALUES ('$username', '$update')");
所以我的mySQL查询一定是个问题。这个mySQL查询是.php文件夹中的两个之一。如果这有任何区别。
答案 0 :(得分:4)
您的SQL中存在错误。如果不引用它们,则不能在列名中使用MySQL关键字。
在这种情况下,update
需要用反引号括起来:
$query = "INSERT INTO updates (`username`, `update`)
VALUES ('$username', '$update')";
您的代码容易受到SQL注入攻击。您应该使用mysql_real_escape_string()
转义放在带有$username = mysql_real_escape_string($_SESSION['username']);
$update = mysql_real_escape_string($_GET['update']);
的SQL语句中的带引号的字符串,或者使用PHP PDO预处理语句绑定数据。
$username = mysql_real_escape_string($_SESSION['username']);
$update = mysql_real_escape_string($_GET['update']);
$query = "INSERT INTO updates (`username`, `update`)
VALUES ('$username', '$update')";
{{1}}
我已经为你写了一些小的SQLFiddle,所以你可以看到这个:http://sqlfiddle.com/#!2/c25b1/1
答案 1 :(得分:1)
您需要转义要插入的数据。您还希望将字符串与变量分开。 尝试这样的事情:
$username = mysql_real_escape_string($_SESSION['username']);
$update = mysql_real_escape_string($_GET['update']);
mysql_query("INSERT INTO `updates` (username, update) VALUES ('" . $username . "', '" . $update . "')") or die(mysql_error());
这是未经测试但应该有效。
答案 2 :(得分:0)
mysql_error()是最好的方法,但您也可以回显查询并直接针对数据库运行它以查看问题所在。
$username = $_SESSION['username'];
$update = $_GET['update'];
$query = "INSERT INTO updates (username, update) VALUES ('$username', '$update')";
mysql_query($query);
echo "My Query : $query";
答案 3 :(得分:0)
试试这个:
$username = $_SESSION['username'];
$update = $_GET['update'];
mysql_query("INSERT INTO updates (username, update) VALUES ('+$username', '+$update')");
也更好的是创建一个变量来放置查询字符串,然后进行查询