我正在创建一个网站,我使用用户指定的值作为我的表的列名称,它工作正常但是,当涉及到更新时,它无法在同一个进程中执行 这是我用于从用户指定值
创建列名的代码mysqli_query($sql,"ALTER TABLE `cmpcheck` ADD `$emailID` VARCHAR( 100 ) NOT NULL ");
以下是我更新上述专栏的代码
mysqli_query($sql,"UPDATE cmpcheck SET `$emailID` = `".$q."` LIMIT 1 ");
任何帮助?
答案 0 :(得分:1)
您使用的是错误的引号:
mysqli_query($sql,"UPDATE cmpcheck SET `$emailID` = '".$q."' LIMIT 1 ");
^ ^
使用反引号(`),您将引用列名。
除此之外:确保正确地逃避$emailID
和$q
答案 1 :(得分:0)
反引号围绕表格和列名称。您应该在字符串值周围使用单引号。
mysqli_query($sql,"UPDATE cmpcheck SET `$emailID` = '$q' LIMIT 1 ");
此外,没有理由从变量替换(与$emailID
一样)切换到与.
串联。
使用预准备语句替换$q
代替变量替换到查询中会更好。但是你不能为列名做到这一点。
答案 2 :(得分:-1)
你可以尝试:
mysqli_query($sql,"UPDATE cmpcheck SET `".$emailID."` = '".$q."' LIMIT 1 ");
还要考虑准备你的陈述。