PHP MySql表创建 - 如此简单但不起作用。为什么?

时间:2012-03-23 21:42:59

标签: php mysql

我面临一个让我发疯的问题。我真的不明白。下面是一个非常简单的表创建。我想使用变量来命名表。它不起作用!!!!!如果我用“handwriten”名称替换变量,它可以工作......什么....提前感谢您的回复。干杯。渣。如果我没有提及它,它会让我发疯。

$processid = mysql_thread_id();

mysql_select_db("mydb", $con);
$sql = 'CREATE TABLE '.$processid.'
(
bat_file varchar(255), 
bat_file_date datetime, 
bat_file_misc varchar(255), 
bat_titre varchar(255), 
bat_lien varchar(255)
)';

mysql_query($sql,$con);

1 个答案:

答案 0 :(得分:2)

mysql_thread_id的返回值不是valid name for a table,除非您引用它:

  

MySQL中的某些对象,包括数据库,表,索引,   列,别名,视图,存储过程,分区和其他对象   名称称为标识符。

 ...
  

标识符可以以数字开头,但除非引用可能不包含   只是数字。

由于引号字符是反引号,因此如果将其更改为

,它应该有效
$sql = 'CREATE TABLE `'.$processid.'` ... ';

我不知道为什么你要创建一个以mysql_thread_id命名的表(听起来真的腥),但即使有一个很好的理由它可能是一个最好在前面添加一个前缀,这样你就不会每次都引用它。