创建MySQL表不起作用

时间:2013-07-08 13:50:34

标签: php sql mysqli

我不明白我在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'不存在”。

3 个答案:

答案 0 :(得分:5)

  1. 正如我在您的代码中看到的那样,您没有执行创建查询。通过mysqli_query($con,$sql)执行。
  2. 在create table query中为Notizen (Benutzer表名和大括号之间的空格。
  3. 使用error函数创建表格,检查您的查询是否正在执行。

答案 1 :(得分:2)

确保使用mysqli_query()运行查询..在表定义存储在db中之前无法插入

答案 2 :(得分: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);
}