مشكلة في الاتصال بقاعدة البيانات
السلام عليكم .
احاول الاتصال بقاعدة البيانات بالطريقة التاليه :
في ملف config.php حطيت معلومات الاتصال بقاعدة البيانات كالتالي
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','root');
define('DB_NAME','blog');
بعدين سويت كلاس لل Database
<?php
class Database{
public $host = DB_HOST;
public $username = DB_USER;
public $password = DB_PASS;
public $db_name = DB_NAME;
public $link;
public $error;
/*
* Class Constructor
*/
public function __construct(){
//Call Connect Function
$this->connect();
}
/*
* Connector
*/
private function connect(){
$this->link = new mysqli($this->host, $this->username, $this->password, $this->db_name);
if(!$this->link){
$this->error = "Connection Failed: ".$this->link->connect_error;
return false;
}
}
}
ومن داخل صفحة index.php سويت استدعاء الكلاس وملف الكونفق
<?php
include 'config/config.php';
include 'libraries/Database.php';
$db = new Database();
?>
الحين المفروض يتصل بدون مشاكل واذا حطيت معلومات خطا يطلع لي خطا . لكن مايطلع لي خطا اذا غيرت المعلومات فما ادري وين المشكله.
ساعد بالإجابة
"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."
الإجابات (5)
3 ساعات مضت, Hamed said:السلام عليكم .
احاول الاتصال بقاعدة البيانات بالطريقة التاليه :
في ملف config.php حطيت معلومات الاتصال بقاعدة البيانات كالتالي
<?php define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PASS','root'); define('DB_NAME','blog');
بعدين سويت كلاس لل Database
<?php class Database{ public $host = DB_HOST; public $username = DB_USER; public $password = DB_PASS; public $db_name = DB_NAME; public $link; public $error; /* * Class Constructor */ public function __construct(){ //Call Connect Function $this->connect(); } /* * Connector */ private function connect(){ $this->link = new mysqli($this->host, $this->username, $this->password, $this->db_name); if(!$this->link){ $this->error = "Connection Failed: ".$this->link->connect_error; return false; } } }
ومن داخل صفحة index.php سويت استدعاء الكلاس وملف الكونفق
<?php include 'config/config.php'; include 'libraries/Database.php'; $db = new Database(); ?>
الحين المفروض يتصل بدون مشاكل واذا حطيت معلومات خطا يطلع لي خطا . لكن مايطلع لي خطا اذا غيرت المعلومات فما ادري وين المشكله.
بالنسبة لعملك قمت بنسخ ملفاتك وجربتها عندي وهي تعمل بدون اي مشاكل في حالة انك ادخلت معلومات قاعدة البيانات الصحيحة فانه الكود راح يتصل بقاعدة البيانات وفي حالة وجود معلومات خاطئة فإنه سوف يتم عرض خطأ عدلت تعديل بسيط على كلاس Database.php لعرض رسالة بحالة الإتصال تقدر تستفيد منها بعملك هنا محتوى الكود
<?php
class Database{
public $host = DB_HOST;
public $username = DB_USER;
public $password = DB_PASS;
public $db_name = DB_NAME;
public $link;
public $error;
/*
* Class Constructor
*/
public function __construct(){
//Call Connect Function
$this->connect();
}
/*
* Connector
*/
private function connect(){
$this->link = new mysqli($this->host, $this->username, $this->password, $this->db_name);
if ($this->link->connect_errno) {
echo "Failed to connect to MySQL: " . $this->link->connect_error;
}else{
echo "MySQL did connect without issues";
}
}
}
واضح من عملك انك محتاج تعمل MySQLi wrapper انصحك بمتابعة هالسلسلة توضح عمل الكلاس واستخدامه اكثر من مره بنفس الملف وتفادي الكثير من مشاكل الإستعلام عند تنفيذ الأوامر لقاعدة البيانات وطريقة تنفيذ لبعض الأاومر مثل جلب بيانات من قاعدة البيانات
منذ ساعه, Ali Majrashi said:بالنسبة لعملك قمت بنسخ ملفاتك وجربتها عندي وهي تعمل بدون اي مشاكل في حالة انك ادخلت معلومات قاعدة البيانات الصحيحة فانه الكود راح يتصل بقاعدة البيانات وفي حالة وجود معلومات خاطئة فإنه سوف يتم عرض خطأ عدلت تعديل بسيط على كلاس Database.php لعرض رسالة بحالة الإتصال تقدر تستفيد منها بعملك هنا محتوى الكود
<?php class Database{ public $host = DB_HOST; public $username = DB_USER; public $password = DB_PASS; public $db_name = DB_NAME; public $link; public $error; /* * Class Constructor */ public function __construct(){ //Call Connect Function $this->connect(); } /* * Connector */ private function connect(){ $this->link = new mysqli($this->host, $this->username, $this->password, $this->db_name); if ($this->link->connect_errno) { echo "Failed to connect to MySQL: " . $this->link->connect_error; }else{ echo "MySQL did connect without issues"; } } }
واضح من عملك انك محتاج تعمل MySQLi wrapper انصحك بمتابعة هالسلسلة توضح عمل الكلاس واستخدامه اكثر من مره بنفس الملف وتفادي الكثير من مشاكل الإستعلام عند تنفيذ الأوامر لقاعدة البيانات وطريقة تنفيذ لبعض الأاومر مثل جلب بيانات من قاعدة البيانات
شكرا لك..
عدلت ملف Database.php ولكن يطلع لي خطا في الحالتين اذا كانت البيانات صحيحة والا خاطئه ويطلع لي هذا الخطا
Failed to connect to MySQL: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
بحثت عن الخطا لكن مافهمت شي عن طريقة حله.
جالس اطبق شرح بناء مدونة بسيطه وراح استفيد بلا شك من السلسلة شكرا لك .
13 دقائق مضت, Hamed said:
شكرا لك..
عدلت ملف Database.php ولكن يطلع لي خطا في الحالتين اذا كانت البيانات صحيحة والا خاطئه ويطلع لي هذا الخطا
Failed to connect to MySQL: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
بحثت عن الخطا لكن مافهمت شي عن طريقة حله.
جالس اطبق شرح بناء مدونة بسيطه وراح استفيد بلا شك من السلسلة شكرا لك .
على مايبدو ان عندك مشكلة بالسيرفر المحلي بحيث ان php ماتقدر تعرف عنوان mysql لتنفيذ الإستعلام تأكد ان كل شي عندك شغال وسليم من apache ,php, mysql وتاكد من phpmyadmin انها تعمل بدون مشاكل ثم حاول مره أخرى مع تغير قيمة DB_HOST في ملف config من localhost الى 127.0.0.1 ثم جرب اذا لم يعمل خذ نسخه احتياطية من ملفاتك وقواعد البيانات عندك على الجهاز ثم قم بإعادة تثبيت السيرفر المحلي ثم حاول مره أخرى وتقدر تركب سيرفر محلي آخر مثل MAMP وجرب ان بقيت المشكلة اكتبها هنا وراح نبذل قصارى جهدنا نساعدك
20 ساعات مضت, Ali Majrashi said:على مايبدو ان عندك مشكلة بالسيرفر المحلي بحيث ان php ماتقدر تعرف عنوان mysql لتنفيذ الإستعلام تأكد ان كل شي عندك شغال وسليم من apache ,php, mysql وتاكد من phpmyadmin انها تعمل بدون مشاكل ثم حاول مره أخرى مع تغير قيمة DB_HOST في ملف config من localhost الى 127.0.0.1 ثم جرب اذا لم يعمل خذ نسخه احتياطية من ملفاتك وقواعد البيانات عندك على الجهاز ثم قم بإعادة تثبيت السيرفر المحلي ثم حاول مره أخرى وتقدر تركب سيرفر محلي آخر مثل MAMP وجرب ان بقيت المشكلة اكتبها هنا وراح نبذل قصارى جهدنا نساعدك
تمام حذفت MAMP وثبته من جديد وزبط الوضع.
شاكر لك مساعدتي .
2 دقائق مضت, Hamed said:
تمام حذفت MAMP وثبته من جديد وزبط الوضع.
شاكر لك مساعدتي .
عفوا وبالخدمة دائما عند الإستطاعه لمساعدتكم ????
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !