2016-03-18 2 views
0

Я не могу найти ответ для этого где угодно. но очень просто у меня есть таблица создания и сохраненный сеанс. Мне нужен этот сеанс как имя таблицы. это показано ниже. я боролся с этим и пытался найти ответ повсюду.создать таблицу php с именем сеанса

Ниже представлена ​​таблица msql. сеанс равен $ id, а ниже - то, что я пробовал до сих пор.

$sql = "CREATE TABLE " . $id . " (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL, 
lastname VARCHAR(30) NOT NULL, 
email VARCHAR(50), 
reg_date TIMESTAMP 
)"; 

это страница в контексте (обновлено)

<?php 
 
//header("Location:all_games/myscorenum.php"); 
 
$servername = "localhost"; 
 
$username = "root"; 
 
$password = "root"; 
 
$dbname = "score"; 
 

 
// Create connection 
 
$conn = new mysqli($servername, $username, $password, $dbname); 
 
// Check connection 
 
if ($conn->connect_error) { 
 
    die("Connection failed: " . $conn->connect_error); 
 
} 
 

 
session_start(); 
 
$id=$_SESSION['id']; 
 

 
echo"$id"; 
 

 

 
$sql = "CREATE TABLE '" . $id . "' (
 
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
 
    firstname VARCHAR(30) NOT NULL, 
 
    lastname VARCHAR(30) NOT NULL, 
 
    email VARCHAR(50), 
 
    reg_date TIMESTAMP 
 
    ) "; 
 
if ($conn->query($sql) === TRUE) { 
 
    echo "Table MyGuests created successfully"; 
 
} else { 
 
    echo "Error creating table: " . $conn->error; 
 
} 
 

 
$conn->close(); 
 
?>

+0

Что ошибка вы получаете? Не установлен ли $ id? – Alexei

+0

use session_name() для имени –

+0

здесь @Alexei Ошибка создания таблицы: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около '' 42 '(id INT (6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, имя VARCHAR (30) NOT' в строке 1 –

ответ

0

Попробуйте использовать этот запрос

$sql = "CREATE TABLE '. $id .' (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    firstname VARCHAR(30) NOT NULL, 
    lastname VARCHAR(30) NOT NULL, 
    email VARCHAR(50), 
    reg_date TIMESTAMP 
    ) "; 
+0

по какой-то причине его все еще не работает –

+0

я могу эхо сеанса отлично, но не в таблице create –

+0

это ошибка Ошибка создания таблицы: у вас есть ошибка в вашем SQL синтаксис, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' 42 '(id INT (6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, имя VARCHAR (30) NOT' в lin e 1 –

0

Вы можете использовать session ID (session_id()):

$id = session_id(); 
if (!empty($id) { 
    $sql = "CREATE TABLE " . $id . " (
      id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
      firstname VARCHAR(30) NOT NULL, 
      lastname VARCHAR(30) NOT NULL, 
      email VARCHAR(50), 
      reg_date TIMESTAMP 
    )"; 
} 

И на самом деле почему вам нужен это имя таблицы?

+0

спасибо, но страница isn ' t загрузка вверх –

+0

это ошибка Ошибка создания таблицы: у вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около '' 42 '(id INT (6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR (30) NOT 'в строке 1 –

Смежные вопросы