所以,簡單地說,我覺得這個代碼應該工作。從字面上看,我只是試圖創建一個PHP類,它接收一些信息並對數據庫運行一個命令。我知道這個命令起作用,所以不是這樣,它與我的變量範圍有關。PHP頁面空白 - 不理解範圍
我是PHP新手,處理起來很有趣。
<?php
require __DIR__ . '/../bin/composer/vendor/autoload.php';
$cx = new Customer();
$cx->WriteCxToDB();
class Customer {
public $database = new medoo([
'database_type'=>'mysql',
'database_name'=>'dbname',
'server'=>'localhost',
'username'=>'dbusername',
'password'=>'dbpassword',
'charset'=>'utf8'
]);
public function WriteCxToDB(){
global $database;
if($database->has("customer", [
"OR"=>[
"username"=>"cxusername",
"email"=>"[email protected]"
]
]))
{
echo "User already exists";
}else{
$database->insert("customer", [
"username"=>"username",
"keyword"=>"keyword",
"email"=>"[email protected]",
"phone"=>"444-444-4444",
"first_name"=>"First",
"last_name"=>"Last"
]);
echo "User added";
}
echo "Done";
}
}
?>
我正在使用composer和medoo來做這個數據庫項目。我知道數據庫代碼的工作原理,因爲我已經運行它自己,它運行良好。
我正在努力與代碼似乎是變量$database
。如果我從混合中刪除該變量,函數調用將起作用。我覺得我只是不理解我應該在哪裏聲明變量/如何從函數內部/外部引用變量。謝謝。
每當您在PHP中得到一個空白頁面時,如果有其他預期的輸出,請檢查您的錯誤日誌。在開發和測試代碼時始終啓用display_errors - 任何致命錯誤應立即顯示。在腳本的頂部:'error_reporting(E_ALL); ini_set('display_errors',1);' –
我注意到你已經使用過'global $ database',但是你也有一個在類中定義的'$ database'屬性,它可以被'$ this-> database'訪問。 .. –
當聲明一個屬性時,實例化一個類實例'$ database'似乎不是http://php.net/manual/en/language.oop5.properties.php給出的例子之一,所以我想象你的錯誤報告已關閉,因此您需要將其打開或檢查錯誤日誌。 – MonkeyZeus