我试图通过用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)
可以像这样修复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)
| 归档时间: |
|
| 查看次数: |
1036 次 |
| 最近记录: |