【发布时间】:2019-07-06 10:23:04
【问题描述】:
我正在尝试使用 php 创建一个 mysql 表
我有以下函数来创建表
class dbActions{
public $connection;
function dbConnect(){
$dbname = 'kilimokenya';
$dbhost = 'localhost';
$dbpass = '';
$dbuser = 'root';
$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($connection ->connect_errno) echo ($connection ->connect_error());
}
function createCustomerTbl(){
GLOBAL $connection;
$CustomerTbl = "CREATE TABLE customers_tbl(
customer_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
emailAddress VARCHAR(30) NOT NULL,
phone_number VARCHAR(15) NOT NULL,
dateRegistered TIMESTAMP
)";
$check = $connection ->query($CustomerTbl);
if(!$check)
echo "Customer table not created because ".$connection ->error;
return true;
}
我在这里调用函数:
$dbObject = new dbActions();
$dbObject ->dbconnect();
$dbObject ->createCustomerTbl();
运行代码时出现以下错误: 致命错误:在第 31 行的 C:\xampp\htdocs\current\kilimokenyafoods\common\server.php 中调用 null 上的成员函数 query()
我错过了什么?
【问题讨论】:
-
要访问一个对象的成员,你必须使用
$this->connection而不是$connection -
@FranzGleichmann 你的意思是: $this ->connection ->query($customerTbl); ?
-
仍然产生同样的错误
-
将
$connection更改为私有,删除createCustomerTbl()方法中的GLOBAL $connection;,并在任何地方使用$this->connection。还可以考虑切换到 PDO 和准备好的语句。 -
@krimaeus 解决了它。谢谢