我想在MYSQL中通过变量在BBDD中创建一个表。我遇到的问题是代码不起作用,我不确定原因。
$variable = "xxx_'".$_POST['idtour']."'_xxxx";
// Create the table
$sql = "CREATE TABLE $tourname (
id_leg VARCHAR(3) NOT NULL COMMENT 'Identificación de la leg del tour, en orden')";
//The action
mysqli_query($link,$sql) or die("Error ".mysqli_error());
我认为" _"是一个问题。任何帮助都会很棒。
答案 0 :(得分:0)
问题不在于_
。这是'
。 "xxx_'".$_POST['idtour']."'_xxxx"
将导致xxx_'value'_xxxx
作为可能的表名,'
在表名中无效。如果你必须包含无效字符,那么你需要使用反引号操作符。
$tablename = "`xxx_'".$var."'_xxxx`";
这应该会让你更进一步实现目标。
旁注:根据用户提供的变量创建表是个坏主意。它可能会使用户能够创建一些奇怪且具有破坏性的行为,并且通常通过向现有表添加列来实现更好的效果。您是否尝试过添加列user_idtour
?