2013-07-08 49 views
1

我不明白的地方我在此代碼錯誤在MySQL數據庫中創建一個簡單的表是:PHP - 創建MySQL表不工作

<?php 

// Create connection 
$con=mysqli_connect("localhost", "administrator", "199992", "test"); 

// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

// Select DB 
mysqli_select_db($con, "test"); 

// Create table 
$sql = "CREATE TABLE IF NOT EXISTS Notizen(Benutzer TEXT,Datum TEXT,Notiz TEXT)"; 


這實際上應該工作,應該不會吧?
但是,當我嘗試插入後的東西:

if(!(empty($_POST[vorname]) and empty($_POST[nachname]) and empty($_POST[notiz]))) { 
$sql = "INSERT INTO Notizen (Benutzer, Datum, Notiz) 
    VALUES 
    ('$_POST[vorname] $_POST[nachname]', 'datum', '$_POST[notiz]')"; 

if (!mysqli_query($con,$sql)) 
{ 
echo "Error: " . mysqli_error($con); 
} 
} 

我得到一個錯誤:「錯誤:表‘test.notizen’不存在」。

+5

你正在運行你的CREATE語句嗎?你是否在檢查錯誤? – andrewsi

+1

所以你有一個文本字符串說創建表....你在哪裏運行它? – Anigel

回答

5
  1. 正如我在您的代碼中看到的,您未執行創建查詢。通過mysqli_query($con,$sql)執行它。
  2. 在創建表格查詢時給出Notizen (Benutzer表名和大括號之間的空格。
  3. 通過使用錯誤函數來創建表,檢查您的查詢是否正在執行。
+0

我很抱歉,我只是一個初學者,我現在只注意到 '$ sql =「CREATE TABLE IF NOT EXISTS Notizen(Benutzer TEXT,Datum TEXT,Notiz TEXT)」;' 只是一個字符串,需要'mysqli_query($ con,$ sql)'運行! –

+0

@Big_Chair如果它解決了你的問題,然後標記這個答案爲接受。 –

2

確保您用mysqli_query()..你不能插入查詢表定義存儲在之前你的數據庫

2

此行之後

$sql = "CREATE TABLE IF NOT EXISTS Notizen(Benutzer TEXT,Datum TEXT,Notiz TEXT)"; 

必須運行

if (!mysqli_query($con,$sql)) 
{ 
    echo "Error creating a database: " . mysqli_error($con); 
}