آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در اتصال به دیتابیس(Wamp Server)

سجاد  6 سال پیش  6 سال پیش
+1 0

سلام نمی دونم مشکل از چیه ولی اخطار زیر رو دریافت می کنم و کلاس ها هم به صورت زیر نوشتم

 
<?php
class Db{
private $connection;

public function __construct($option=null){


if($option!=null){
$host=$option['host'];
$user=$option['user'];
$pass=$option['pass'];
$name=$option['name'];
}else{
global $config;
$host=$config['db']['host'];
$user=$config['db']['user'];
$pass=$config['db']['pass'];
$name=$config['db']['name'];
}

$this->connection=new mysqli($host,$user,$pass,$name);
if($this->connection->connect_error){
echo"Connection failed: " . $this->connection->connect_error;
exit;
}
$this->connection->query("SET NAMES 'utf8'");
}
public function first($sql){
$records=$this->query($sql);
if($records==null){
return null;
}
return $records[0];
}
public function query($sql){
$result=$this->connection->query($sql);
$records=array();
if($result->num_rows==0){
return null;
}
while($row=$result->fetch_assoc()){
$records[]=$row;
}
return $records;
}
public function connection(){
return $this->connection;
}
public function close(){
$this->connection->close();
}

////////////////////////////////////////////// index.php
<html
<head>
<meta charset="utf-8">
</head>
<body>

<?php
require_once ('config.php');
require_once ('db.php');
require_once ('common.php');

$db = new Db();
$record = $db->quary("SELECT * FROM x_note LEFT OUTER JOIN x_user ON x_note.user_id=x_user.user_id");
dump($record);

?>

</body>
</html>

//////////////////////////////////////// config.php
<?php
global $config;
$config['db']['host'] = 'localhost';
$config['db']['user'] = 'root';
$config['db']['pass'] = '';
$config['db']['name'] = 'notes';
//////////////////////////////////////////common.php
<?php
function dump ($var ,$return = false){
if (is_array($var)){
$out = print_r($var , true);
}else if (is_object($var)){
$out = var_export($var , true);
}else{
$out = $var;
}
if ($return){
return"\n<pre>$out</pre>\n";
}else{
echo "\n<pre>$out</pre>";
}
}
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
libcode  6 سال پیش
0 0

شما متد query رو به شکل static صدا کردید و اگر از متغیری از نوع Db دارید به این شکل صدا بزنید

db->query

و باید از نمونه ساخته شده استفاده کنید . و سعی نکنید متد ها را به static تبدیل کنید . چون اصلا امن نیست.

0 0
خوب الانم که همینجور صدا زده شده منظورتون کلاس index.php هست؟ اونم درسته !! (6 سال پیش)
0 0
شما باید بنویسید db=Db::getInstance و قبلش function construct را به getInstance تغییر دهید. (6 سال پیش)
0 0
به جای نوشتن construct__ بنویسید getInstance و همه ی چیز هایی را که در بالا به شما گفته ام را به ترتیب انجام دهید . مشکل حل خواهید شد. (6 سال پیش)
پاسخ به سوال 
fea1436  6 سال پیش
0 0

بدون ساخت Instance و صرفاً با دستورات بالا نیز این مشکل حل خواهد شد، اگر فایروال ویندوزتان روشن است آنرا خاموش کرده و مجدداً آن را در browser  باز کنید


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .