0
Ben php ile temel bir kullanıcı manipülasyon sistemi üzerinde çalışıyorum, ancak dbconnect bağlantı ve ondan bağlantı değişkeni alamıyorum. İşte Dbconenct.php eklenemiyor
benim kodudur:?dbconnect.php
<?php
$con = mysqli_connect("localhost","root","","realestatecompany");
if(!$con) {
echo "Error";
}
//$con->close();
?>
objects.php
<?php
require_once 'dbconnector.php';
class userAccount {
public $userName;
public $userPass;
public $userType;
public function __construct ($UserName, $Password, $Type, $con) {
$this->userName = $UserName;
$this->userPass = $Password;
$this->userType = $Type;
}
public function writeInDB() {
$sql = "INSERT INTO login (userName,userPass,userType) values (".$this->userName.",".$this->userPass.",".$this->userType.")";
if ($con->query($sql) === TRUE) {
echo "Record Added successfully";
} else {
echo "Error Adding record: " . $conn->error;
}
}
public function editInDB($userNewAccount, $userID) {
$a = $userNewAccount->userName;
$b = $userNewAccount->userPass;
$c = $userNewAccount->userType;
$sql = "UPDATE login SET userName =".$a.", userPass ='".$b."', userType =".$c." WHERE userID =".$userID;
echo $sql;
}
}
$x = new userAccount("Heba", "Taba3", 1, $con);
$x->writeInDB();
>
Çıktı
Notice: Undefined variable: con in D:\xampp\htdocs\swproject\objects.php on line 14
Fatal error: Uncaught Error: Call to a member function query() on unknown in D:\xampp\htdocs\swproject\objects.php:14 Stack trace: #0 D:\xampp\htdocs\swproject\objects.php(29): userAccount->writeInDB() #1 {main} thrown in D:\xampp\htdocs\swproject\objects.php on line 14
Herhangi bir yardım?
'dbconnect bir propery olarak kullanmak değildi
$con
parametreyi kaydetmek unuttuğunu değişken kapsamı ve aynı zamanda. php 've 'dbconnector.php' iki farklı şeydir ... – arkascha' require_once 'dbconnect.php'; 'require_once 'dbconnector.php';' '' –
Bunun yerine, betiklerinizdeki değişken kapsamı dikkate almadınız. "$ con" işlevlerinizde, fonksiyonun kapsamına yerel bir _local_ değişkeni, ayarlanabilecek veya ayarlanamayan global bir değişkene başvurmaz. Değişkenleri işlevler için bir çağrı argümanı olarak ele geçirerek enjekte etmeniz ya da 'global' (_very_ çirkin ve güvensiz) olarak bildirmeniz gerekir. – arkascha