Php SQL创建表语法错误
我试图创建500个表,所有这些表都命名为[1-500],并且只有一个时间戳和一个对应的值totalviewsPhp SQL创建表语法错误,php,mysql,database,Php,Mysql,Database,我试图创建500个表,所有这些表都命名为[1-500],并且只有一个时间戳和一个对应的值totalviews <?php $i = 1; while ($i<500) { $con=mysqli_connect("localhost","user","pass","database"); if (mysqli_connect_errno($con)) { echo "Failed to connect to MySQL: " . mysqli_
<?php
$i = 1;
while ($i<500) {
$con=mysqli_connect("localhost","user","pass","database");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "CREATE TABLE \"".$i."\" (
'TheTime' INT UNSIGNED PRIMARY KEY,
'TotalViews' INT UNSIGNED
)";
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
};
echo "1 table created added: ".$i;
mysqli_close($con);
$i++;
}
?>
但是我得到了一个错误:错误:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“1”时间“INT UNSIGNED”主键、“TotalViews”INT UNSIGNED”附近使用的正确语法
我做错了什么?我应该以不同的方式完成这一点吗?列名不能用单引号括起来,您可以使用反勾号 所以 应该是
`TheTime`
及
到
表名:100,比如说,应该是反勾号 我是pendatic,把所有的名字都放在后面,但除了保留的单词和不寻常的名字之外,它们不是必需的 下面是测试代码:
<?php
$i = 1;
while ($i<5) {
$con=mysqli_connect("localhost","test","test","testmysql");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = 'CREATE TABLE `'.$i.'` ('
.'`TheTime` INT UNSIGNED PRIMARY KEY,'
.'`TotalViews` INT UNSIGNED)';
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
};
echo "1 table created added: ".$i;
mysqli_close($con);
$i++;
}
?>
首先,您应该在开始while循环之前移动连接。 对于DB名称,请使用“代替”,对于字段,请使用“代替”符号:
<?php
$con = mysqli_connect("localhost", "user", "pass", "database");
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
$i = 1;
while ($i < 500) {
$sql = "CREATE TABLE `" . $i . "` (
`TheTime` INT UNSIGNED PRIMARY KEY,
`TotalViews` INT UNSIGNED
)";
if (!mysqli_query($con, $sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 table created added: " . $i;
$i++;
}
mysqli_close($con);
PS:我建议您对mysqli使用面向对象的接口,它更简单。详细信息:谢谢,但我现在仍然得到错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1hmm行使用接近“1 TheTime INT UNSIGNED PRIMARY KEY,TotalViews INT UNSIGNED”的正确语法。表名为1,2…等,因此您需要将它们与列名一样包含在backtics中。不要将整数用作列/表标识符。另外,创建500张完全相同的表格听起来是一个非常糟糕和愚蠢的想法。不知道为什么答案被否决了?不过,谢谢你接受。
`TotalViews`
<?php
$i = 1;
while ($i<5) {
$con=mysqli_connect("localhost","test","test","testmysql");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = 'CREATE TABLE `'.$i.'` ('
.'`TheTime` INT UNSIGNED PRIMARY KEY,'
.'`TotalViews` INT UNSIGNED)';
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
};
echo "1 table created added: ".$i;
mysqli_close($con);
$i++;
}
?>
<?php
$con = mysqli_connect("localhost", "user", "pass", "database");
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
$i = 1;
while ($i < 500) {
$sql = "CREATE TABLE `" . $i . "` (
`TheTime` INT UNSIGNED PRIMARY KEY,
`TotalViews` INT UNSIGNED
)";
if (!mysqli_query($con, $sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 table created added: " . $i;
$i++;
}
mysqli_close($con);