在mysql表中添加列不起作用?

时间:2016-01-26 13:16:45

标签: php

这是我到目前为止我没有得到任何错误。但是添加的列不起作用?
它不会出现在我的数据库中 我该怎么办?

 <?php

      $mysqli = mysqli_connect("localhost","texaco","texaco","texaco");

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

      elseif (mysqli_query("ALTER TABLE prijzen ADD test varchar(255) NOT NULL")) {
          echo "Table creation failed: (" . mysqli_errno . ") " . mysqli_error;
      }


      else {
      header("Location: inloggen.php");
      }



      /* ;
        mysqli_query($sql);

       */

      ?>

4 个答案:

答案 0 :(得分:4)

这里的问题是你从未将数据库连接传递给查询:

elseif (mysqli_query("ALTER TABLE prijzen ADD test varchar(255) NOT NULL"))

做的:

elseif (mysqli_query($mysqli, "ALTER TABLE prijzen ADD test varchar(255) NOT NULL"))

参考手册:http://php.net/manual/en/mysqli.query.php

另外,最好在标题后添加exit;。否则,您的代码可能希望继续执行。

header("Location: inloggen.php");
exit;

但是,我不会使用elseif而我不知道您为什么要这样做。只需检查查询是否成功执行。

$query = mysqli_query($mysqli, "ALTER TABLE prijzen ADD test varchar(255) NOT NULL");

    if(!$query){
       echo mysqli_error($mysqli);
    }

else{
    header("Location: inloggen.php");
    exit;
}

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code

旁注:只应在暂存时进行显示错误,而不是生产。

答案 1 :(得分:1)

试试这个:

  $mysqli = mysqli_connect("localhost","USERNAME","PASSWORD","DATABASE");

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

  elseif (mysqli_query($mysqli,"ALTER TABLE prijzen ADD test varchar(255) NOT NULL")) {
       //do something when column add
  } else {
       echo "Column creation failed: (" . mysqli_errno . ") " . mysqli_error;
    }

在第一行更改USERNAME以获取具有alter table数据库权限的用户名,更改用户密码的PASSWORD和数据库名称的DATABASE。

如果这不起作用,请检查MySQL的权限。

答案 2 :(得分:0)

您的查询是正确的。 我认为你的用户 texaco 在Alter Table的phpmyadmin中没有特权。

  • 进入你的phpmyAdmin
  • 为您的数据库添加texaco所有权限。

答案 3 :(得分:0)

感谢你们所有的m8工作人员没有你的答案帮助这是你的最终代码mann ::::

<?php

  $mysqli = mysqli_connect("localhost","texaco","texaco","texaco");
  $kolomnaam = $_POST['kolomnaam'];
  // Check connection
  if (mysqli_connect_errno())
    {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

  elseif (mysqli_query($mysqli, "ALTER TABLE prijzen ADD $kolomnaam varchar(255) NOT NULL")) {
      echo "Table creation failed: (" .  mysqli_errno . ") " . mysqli_error;
  }


  else {
  header("Location: inloggen.php");
  }



  ?>