В настоящее время я работаю над системой ранжирования PHP/MySQL, но у меня возникла проблема с моим оператором CREATE TABLE
.MySQL Не создает таблицу через PHP
Вот мой код:
mysql_select_db("DB1");
$numrows = "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'DB1'";
if($numrows > 1){
if($numrows > 2){
$table = rand(1, $numrows);
}else{
$table = rand(1, 2);
}
}else{
$table = rand(1, 1);
}
$checkForTable = mysql_query("SELECT 1 FROM $table LIMIT 1");
if($checkForTable){
$query = "INSERT INTO $table (name,score) VALUES($name, $score)";
$result = mysql_query($query);
mysql_select_db("DB2");
$query2 = "INSERT INTO Leaderboard (name,score) VALUES($name, $score)";
$result2 = mysql_query($query2);
mysql_select_db("DB1");
if($result && $result2){
echo "<h4 style='color:green;'>Your Score Has Been Inserted</h4><hr/>";
}else{
echo "<h4 style='color:red;'>We encountered an error while inserting your data </h4><hr/>";
}
}else{
$newtable = "CREATE TABLE $table (
id bigint AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL,
score bigint(20) NOT NULL,
PRIMARY KEY('id')
)";
$result = mysql_query($newtable);
if($result){
$query = "INSERT INTO $newtable (name,score) VALUES($name,$score)";
$result = mysql_query($query);
mysql_select_db("DB2");
$query2 = "INSERT INTO Leaderboard (name,score) VALUES($name, $score)";
$result2 = mysql_query($query2);
mysql_select_db("DB1");
if($result && $result2){
echo "<h4 style='color:green;'>Your Score Has Been Inserted</h4><hr/>";
}else{
echo "<h4 style='color:red;'>We encountered an error while inserting your data </h4><hr/>";
}
}else{
echo "TableNotCreatedException: " . mysql_error();
}
}
Когда я попробовать код, я получаю:
У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «1 (ID BigInt AUTO_INCREMENT NOT NULL, имя varcha» в строке 1
Я пытался выяснить это на некоторое время но я не имел удачи. Пожалуйста, помогите!
@ R.Harley, ты тщательно красный ответ. ошибка заключается в том, что вы используете цифру как имя таблицы, которая неприемлема. Попробуйте использовать другое имя. Прочтите документы. – Rahul
Ok @Rahul, я получал некоторые ошибки с существующей таблицей, поэтому я изменил ее на CREATE TABLE, если не EXIST $ table' (...) ', и теперь я получаю ошибку. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего MySQL-сервера, для правильного синтаксиса для использования рядом с «EXIST 1» (id bigint AUTO_INCREMENT NOT NULL, nam 'в строке 1' –
Я изменил таблицу CREATE TABLE $ table, чтобы CREATE TABLE ' $ table' –