0

乱数に基づいてデータベースを作成するためのこのコードがあります。

<?php
  $con = mysql_connect("localhost","soociali","[censored]");
  $databasename = rand(5, 7);

  if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

  if (mysql_query("CREATE DATABASE $databasename",$con))
    {
    echo "Database created, called $databasename";
    }
  else
    {
    echo "Error creating database: " . mysql_error();
    }

  mysql_close($con);
?>

ただし、次のエラーが発生します。Error creating database: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6' at line 1

4

2 に答える 2

2

データベース名を`マークで囲みます:

if (mysql_query("CREATE DATABASE `$databasename`",$con))

クエリ"CREATE DATABASE 6;"は、MySQLにまっすぐな整数のように見えるのではなく、英数字のデータベース名を期待しているため、MySQLを混乱させています。

于 2013-01-30T16:45:21.567 に答える
1

データベースの名前は数値として解析されます。このようにバッククォートを2つ置くだけです:

mysql_query("CREATE DATABASE `$databasename`",$con)
于 2013-01-30T16:46:59.207 に答える