【问题标题】:How to create mysql table in php using class(oops) in php?如何使用 php 中的 class(oops) 在 php 中创建 mysql 表?
【发布时间】:2013-06-26 18:13:10
【问题描述】:

我需要使用 PHP 中的类创建一个 MySQL 表 我正在使用以下代码,但没有创建表

<?php
$this->query("
   CREATE TABLE '$table2'(
messageno INT NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(messageno),
 user_id VARCHAR, message VARCHAR,message_time DATETIME)");


?>

<?php 
class core {



public function __construct() {
      $this->db = new mysqli('localhost','box','box','box');
}

    public function query($sql) {
        $this->result = $this->db->query($sql);
    } 

}
?>

所以,请建议更改或创建表格的适当方式

我只是一个初学者,如果我问这个简单的问题,很抱歉。

【问题讨论】:

  • 这个问题不错,但还不够具体,不如在这里提问,不如看看 PHP OOP 教程?
  • 在查询中你有$table2,在此之前你定义$table我认为这些应该是一样的。
  • 你的mysql用户有create权限吗?
  • 运行查询的代码的上下文是什么,是否在db 所属的类中的方法中?并且您应该在开发过程中显示错误并添加错误处理,特别是对于数据库操作。
  • @jeroen 我刚刚在上面的问题中添加了那段代码,请检查

标签: php mysql class oop create-table


【解决方案1】:

您在示例中将$table 定义为no_name。但是您似乎在查询中使用了$table2。这是在哪里定义的?

应该是:

$table = 'no_name';
$query = "CREATE TABLE {$table} ( 
    messageno INT NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(messageno),
 user_id VARCHAR, message VARCHAR,message_time DATETIME)";

$this->query( $query );

【讨论】:

    【解决方案2】:

    使用某种形式的错误处理来找出发生了什么

    public function query($sql) {
      if (($result = $this->db->query($sql)) !== false) {
        printf("Error: %s\n", mysqli_error($this->db));
      }
    } 
    

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 2011-09-18
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2017-05-28
      相关资源
      最近更新 更多