我在一个变量上有一个表名,但当我把它放在CREATE table IF NOT EXISTS命令中或它创建$table被调用的表时,它就不起作用了。
这是我代码的相关部分:
$con=mysqli_connect("localhost","user","pwd","DB");
$usuario=$_SESSION["uid"];
$tabla=$usuario;
$tabla.='_partidos';
echo $tabla; // shows the correct name of the table
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//crear tabla
$create_table =
'CREATE TABLE IF NOT EXISTS $tabla (
`ID` int(2) NOT NULL AUTO_INCREMENT,
`Grupo` varchar(1),
`Local` char(30),
PRIMARY KEY (`ID`)
)
COLLATE=utf8_spanish_ci';
$con->query($create_table);
单引号字符串中的变量将不会被解析。但是,它将被解析为一个双引号字符串:
"CREATE TABLE IF NOT EXISTS $tabla (
`ID` int(2) NOT NULL AUTO_INCREMENT,
`Grupo` varchar(1),
`Local` char(30),
PRIMARY KEY (`ID`)
)
COLLATE=utf8_spanish_ci";
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double
或者,您可以始终将其连接起来:
"CREATE TABLE IF NOT EXISTS " . $tabla . " (
`ID` int(2) NOT NULL AUTO_INCREMENT,
`Grupo` varchar(1),
`Local` char(30),
PRIMARY KEY (`ID`)
)
COLLATE=utf8_spanish_ci";