我有一行代码通过为电子邮件添加一列来更改表格。出于某种原因,只要@
字符串中有一个,它就不会更新表。有谁知道出了什么问题?
mysqli_query($dbcon,"ALTER TABLE ipList ADD ".$userName." VARCHAR(100)");
如果我在我的输入字段中输入类似的内容,它工作正常test
,但如果我这样做test@example.com
,表格不会更新。任何帮助将非常感激。
谢谢!
~地毯嘶嘶声
首先,为什么要根据用户名向表中添加新列?通常必须更改程序中的数据模型是数据库设计出现问题的标志。
您可以使用反引号来引用包含不寻常字符(例如空格)的表的名称,@
或.
:
mysqli_query("ALTER TABLE ipList ADD `$userName` VARCHAR(100)");
尝试对变量使用反引号,
mysqli_query('ALTER TABLE `iplist` Add `'.$username.'` VARCHAR( 100 ) ');
尝试使用mysqli_real_escape_string()
mysqli_real_escape_string($dbcon, $userName);
mysqli_query($dbcon,"ALTER TABLE ipList ADD ".$userName." VARCHAR(100)");
http://www.php.net/manual/en/mysqli.real-escape-string.php
(注意这一点,可能要研究 SQL 注入;因为不建议将参数直接转储到 SQL 字符串中)