我正在尝试编写一个随机生成“名称”的脚本,并使用指定为表名的变量。但是,我无法创建表,我得到错误“表未创建:”。我在下面列出了我的代码。感谢你给与我的帮助。
$con = mysqli_connect("localhost","placeholder","placeholder","placeholder");
//or die ('unable to connect');
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//create random database name
$alpha = "abcdefghijklmnopqrstuvwxyz";
$alpha_upper = strtoupper($alpha);
$numeric = "0123456789";
$special = ".-+=_,!@$#*%<>[]{}";
$chars = "";
if (isset($_POST['length'])){
// if you want a form like above
if (isset($_POST['alpha']) && $_POST['alpha'] == 'on')
$chars .= $alpha;
if (isset($_POST['alpha_upper']) && $_POST['alpha_upper'] == 'on')
$chars .= $alpha_upper;
if (isset($_POST['numeric']) && $_POST['numeric'] == 'on')
$chars .= $numeric;
if (isset($_POST['special']) && $_POST['special'] == 'on')
$chars .= $special;
$length = $_POST['length'];
}else{
// default [a-zA-Z0-9]{9}
$chars = $alpha . $numeric;
$length = 6;
}
$len = strlen($chars);
$pw = '';
for ($i=0;$i<$length;$i++)
$pw .= substr($chars, rand(0, $len-1), 1);
// the finished table name
$pw = str_shuffle($pw);
//using the $pw variable for the table name
$sql="CREATE TABLE `' . $pw . '` (
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
Name CHAR(15))";
if (mysqli_query($con,$sql))
{
echo "table created successfully";
}
else
{
echo "table was not created:" . mysqli_error($sql);
}
//TODO create XML file
mysqli_close($con);
答案 0 :(得分:0)
$sql="CREATE TABLE `" . $pw . "` // you were using single quotes.. replace them with double
(
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
Name CHAR(15))";
它现在可以工作..