0

我有一行代码通过为电子邮件添加一列来更改表格。出于某种原因,只要@字符串中有一个,它就不会更新表。有谁知道出了什么问题?

mysqli_query($dbcon,"ALTER TABLE ipList ADD ".$userName." VARCHAR(100)");

如果我在我的输入字段中输入类似的内容,它工作正常test,但如果我这样做test@example.com,表格不会更新。任何帮助将非常感激。

谢谢!

~地毯嘶嘶声

4

3 回答 3

3

首先,为什么要根据用户名向表中添加新列?通常必须更改程序中的数据模型是数据库设计出现问题的标志。

您可以使用反引号来引用包含不寻常字符(例如空格)的表的名称,@.

mysqli_query("ALTER TABLE ipList ADD `$userName` VARCHAR(100)");
于 2013-09-28T17:22:52.397 回答
2

尝试对变量使用反引号,

mysqli_query('ALTER TABLE  `iplist` Add `'.$username.'` VARCHAR( 100 ) ');
于 2013-09-28T17:39:25.970 回答
1

尝试使用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 字符串中)

于 2013-09-28T17:16:09.837 回答