2016-08-19 2 views
1

Ich versuche, eine Tabelle zu erstellen, wann immer der Benutzer seinen/ihren Domänennamen übermittelt. Es wird definitiv ein .com oder ein .net oder ein .something sein Das Problem ist, dass mein Code keine Tabelle erstellt, wenn sie ein .anything enthält, funktioniert es gut für Namen und Zeichen ohne .etwasDas Erstellen der Tabelle mit dem Domänennamen schlägt fehl

$domain=$_POST['domain_name'];//it is dramatainment.com 

$table = mysqli_query($connection, "CREATE TABLE $domain (
user_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
user_name VARCHAR(100) NOT NULL, 
user_domain VARCHAR(50) NOT NULL, 
user_email VARCHAR(50), 
user_password VARCHAR(50), 
user_date date 
) "); 
if(!$table) 
{ 
die('Could not create table: ' . mysqli_error($connection)); 
} 

Hat der Befehl create table diese Einschränkung? Kann das gelöst werden?

+0

Vertrauen Sie nicht, dass Sie immer einen schönen Domain-Namen bekommen, verwenden Sie [vorbereitete Anweisungen] (http://php.net/manual/en/mysqli.prepare.php). – Script47

+0

Möchten Sie nicht tatsächlich eine Zeile mit diesen Daten in eine bereits vorhandene Tabelle namens "Domänen" oder so etwas hinzufügen? –

+0

@tom Ich mag deine Idee. Aber in meinem Fall brauchte ich die Tabellen, die für Domain-Namen erstellt wurden. Danke :) –

Antwort

0

Sie könnten versuchen, den Punkt durch einen Unterstrich zu ersetzen.

Here können Sie herausfinden, welches Zeichen in einem Tabellennamen erlaubt ist.

Zusätzlich ist es möglich, diese Syntax zur Abfrage verwenden, die mit Ihrem Tabellennamen in Konflikt geraten würde:

SELECT * FROM dbname.table_name; 

UPDATE: es ist möglich, Backticks Tabellennamen einzuschließen:

$sql = 'CREATE TABLE `$tableName` (
user_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
user_name VARCHAR(100) NOT NULL, 
user_domain VARCHAR(50) NOT NULL, 
user_email VARCHAR(50), 
user_password VARCHAR(50), 
user_date date 
)'; 
+0

Vielen Dank für die Antwort. Es funktionierte. Können Sie erklären, welchen Unterschied die Backticks machen, die es der Abfrage ermöglichen, Namen mit .com zu verarbeiten? –

Verwandte Themen