问题描述
||
我仍然习惯于PHP及其功能。我设计了一个“ 0”页面。我有它的工作,但是它只是将空字段发布到表中。
这是我正在使用的代码:
$query = \"
INSERT INTO users (`id`,`fname`,`lname`,`username`,`email`,`password`)
VALUES (\'\',\'\".$fname.\"\',\'\".$lname.\"\',\'\".$username.\"\',\'\".$email.\"\',\'\".$password.\"\')\";
我没有输入我发布到数据库中的数据,但是输入了空白字段,所以发生了某些事情。
我试着跑:
echo `$query`;
这就是我从输出中得到的结果:
INSERT INTO users (`id`,`password`) VALUES (\'\',\'\',\'\')
关于此问题的任何提示,技巧或帮助,将不胜感激。
解决方法
我的建议:
对于每个字段,如果尚未在查询中使用它们,请先分配它们:
$fname = mysql_real_escape_string($_POST[\'fname\']);
mysql_real_escape_string
功能有助于防止SQL注入攻击。
, 当执行插入操作且未传递特定的ID时,最好使用NULL
而不是用逗号保留空白空间。事实上,我不确定这是否是有效的语法
, 您需要确保将提交数据的HTML表单上的method
属性设置为post
或get
。
假设变量名与表单中的字段名匹配,然后不使用$fname
等,而是根据HTML表单的action
将数据寻址为$_POST[\'fname\']
或$_GET[\'fname\']
。
, 可能您认为register_globals等于\'on \'吗? ))
但是该指令已被描述。在此查询之前显示您的代码。您必须设置变量($ lname = mysql_escape_string($ _ POST [\'lname \']))...