مشكلة فى استخدام كلاس لادخال فى قاعدة البيانات باستخدام sqlite او mysqli

*class con

{

public $con;
public function __construct(){
    $con = mysqli_connect('localhost', 'root', '', 'whatsapp');

    if($con){echo 'Connection <br/>';}else{echo 'Problem Connection <br/>';}

    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }}
public function conQuery($conQuery){
    return mysqli_query($this->con,$conQuery);
}

} $c = new con(); $r = "INSERT INTO send(id, packets, phone, type, send, date) VALUES (null,'111111111','22222222','text',0,'1/1/1')"; $e = mysqli_query($c->con,$r); if ($e) { echo 'ok'; } else { echo 'no'; }*

هذا هو الكود اذا قمت باخذ امر الادخال فى phpmyadmin ينفذ بنجاح ولكن فى هذا الكود لم يتم الادخال


التعليق السابق
  • يمكن إستخدام علامة الكاشيدة "`" لإمكانية إستخدام اسماء محجوزة بدون تعارض.

نعم صحيح .

ولكن انا شخصيا معتاد على عدم استخدامها فكثير ما انساها بمثل هذه الحالات وتظهر هذه المشكلة وتاخذ مني وقت كبير وانا ابحث عن المشكلة فلكي اختصر على نفسي هذا العناء اقوم بتسمية الحقول بكلمتين (اختصار اسم الجدول_اسم الحقل).

فمثلا لو اسم الجدول products

اسمي الحقول (pro_id, pro_cat .... etc).

  • حتى أنا لا أستخدمها ツ وأستخدم نفس الإسلوب الذي ذكرته (proID, proCat.... etc) أعلم أنها غير حساسة لحالة الأحرف ولكن للإيضاح وأيضاً أقوم بتوحيد المسميات على مستوى المشروع لسهولة التتبع.

انا غيرت برده الاسماء بس نفس المشكلة

ده الكلاس الذى لم ينجح فيه عملية الادخال

وهذا من غير كلاس ونجحت عملية الادخال

ولو هتلاحظوا ان هو هو نفس الأمر!!!

$e = mysqli_query($c->con,$r);

حسناً هل جربت ان ترى ما القيمة الموجودة في $c->con ؟؟؟ استبدل :  

    public function __construct(){
           $con = mysqli_connect('localhost', 'root', '', 'whatsapp');


        if($con){echo 'Connection 
 ';}else{echo 'Problem Connection 
 ';}


        if (mysqli_connect_errno())
        {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
           }}

وضع : 

    public function __construct(){
        $this->con = mysqli_connect('localhost', 'root', '', 'whatsapp');

         if(this->$con){echo 'Connection 

';}else{echo 'Problem Connection ';}

        if (mysqli_connect_errno())
        {
         echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }}

تم حل المشكلة (المشكلة مكنتشى فى ان الاتصال فيه خطأ المشكلة كانت فى دالة query لم تكن تنفذ عند استدعائها من داخل الكلاس لكن لو قمت بإنشاء كائن خارج الكلاس كانت تنجح)

الحل هنا إذا اردت او احد اراد مراجعته ولمعرفة الحل