【问题标题】:Creating MySQL Table not working创建 MySQL 表不起作用
【发布时间】:2013-07-08 13:50:34
【问题描述】:

我不明白我在此代码中在 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.notize' 不存在”。

【问题讨论】:

  • 您正在运行您的 CREATE 语句吗?做完之后你会检查错误吗?
  • 所以你有一个文本字符串说创建表......你在哪里运行它?

标签: php sql mysqli


【解决方案1】:
  1. 正如我在您的代码中看到的,您没有执行创建查询。由mysqli_query($con,$sql)执行。
  2. 在创建表查询中在Notizen (Benutzer 表名和大括号之间留出空格。
  3. 通过使用错误函数创建表来检查您的查询是否正在执行。

【讨论】:

  • 非常抱歉,我只是一个初学者,现在才注意到$sql = "CREATE TABLE IF NOT EXISTS Notizen(Benutzer TEXT,Datum TEXT,Notiz TEXT)";只是一个字符串,需要mysqli_query($con,$sql)才能运行!
【解决方案2】:

确保使用 mysqli_query() 运行查询。在表定义存储在数据库中之前,您不能插入

【讨论】:

    【解决方案3】:

    这一行之后

    $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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2023-03-06
      • 2015-08-20
      • 1970-01-01
      相关资源
      最近更新 更多