通过PHP将数据插入MySQL表

And*_*ndy 1 php mysql

我试图通过用PHP编写的网页将一些简单的用户数据添加到数据库中,但是下面的代码(更具体地说,第三行)打破了页面.我使用错误的MySQL功能吗?我很确定我的查询格式正确.

mysql_query("CREATE TABLE stats ( userAgent CHAR(20) )");

$userAgent = $_SERVER["HTTP_USER_AGENT"];
mysql_query("INSERT INTO stats VALUES ("$userAgent"));
Run Code Online (Sandbox Code Playgroud)

sve*_*ens 6

可以像这样修复PHP错误(注意点,它用于将字符串"粘合"在一起):

mysql_query("INSERT INTO stats VALUES (".$userAgent.")");
Run Code Online (Sandbox Code Playgroud)

此外,您应该执行一些SQL注入保护,用户代理字符串是用户定义的(有修改它的工具),因此需要对其进行清理.此外,user-agent是一个字符串,因此您需要将其放在单引号之间.

mysql_query("INSERT INTO stats VALUES ('" . mysql_real_escape_string($userAgent) . "')");
Run Code Online (Sandbox Code Playgroud)

另一个重要的事情是错误处理 - 回显错误描述是查找SQL语法中的错误所必需的.

mysql_query("INSERT INTO stats VALUES ('" . mysql_real_escape_string($userAgent) . "')")
    or die("MySQL Error: " . mysql_error());
Run Code Online (Sandbox Code Playgroud)