خطأ في mysqli !


التعليقات

السلام عليكم ورحمة الله. لا أملك إجابة حاليا.

لكن أنصحك بأن تسأل في قسم البرمجة بموقع الأكاديمية، قد تجد جوابا هناك :)

<?php

$dbse = mysqli_connect("localhost", "root", "root", "dbname") or die (mysql_error());

mysqli_select_db($dbse, "dbname");

if (!class_exists('DB')) {

class DB{

private $sql;

public function query($sql){

return mysqli_query($dbse,$sql) or die(mysql_error()); // Line 8

}

public function fetch($sql){

$Data = array();

$Q = $this->query($sql);

while ($row = mysqli_fetch_array($Q)) {

$Data[] = $row;

}

return $Data;

}

}

}

?>

الكود هكذا أوضح

للأسف لا أعرف mysqli

بالنسبة لطريقة تترتيب الكود

أضف أربع مسافات قبل كل سطر من الكود

كتبت كلام مسحه المتصفح جرب هذا

    class DB{  global $dbse ;
    private $sql;
    public function query($sql){
    return mysqli_query($dbse,$sql) or die(mysql_error()); // Line 8
    }

عذرا اعتقد هذا هو الكود الصحيح لان الدوال لاتاخد المتغيرات العاملة بدون تعريف

class DB{ 
private $sql;
public function query($sql){ global $dbse ;
return mysqli_query($dbse,$sql) or die(mysql_error()); // Line 8
}

استبدل

 return mysqli_query($dbse,$sql) or die(mysql_error()); // Line 8

بـ return mysqli_query($dbse,$sql) or die(mysqli_error()); // Line 8

آه ، اذا لم يعمل ـ

أضف قبل السطر

 return mysqli_query($dbse,$sql) or die(mysql_error()); // Line 8
هذا الكود :
 global $dbse;

أضف الكود

global $dbase;

في اول سطر للدالة أي قبل $Data = array();

line 8 mysqli_query($db,$sql) or die(mysql_error()); // Line 8

لا أعرف سبب المشكله ولكن انصحك باستخدام كلاس pdo في التعامل مع قواعد البيانات

فهو احدث شي في لغة php للاتصال والتعامل مع قواعد البيانات كما انه بسيط وسهل الفهم

عرف المتغير dbse

او قم بادخاله من خلال وضعه كبارميتر في الميثود

المشكلة ان متغير dbse خارج الكلاس ولايمكن إدخاله للكلاس الا بهذه الطريقة

او اختصر ها وضع دالة الاتصال في نفس الكلاس

<?php
$dbse = mysqli_connect("localhost", "root", "root", "dbname") or die (mysql_error());
mysqli_select_db($dbse, "dbname");
if (!class_exists('DB')) {
class DB{
private $sql;
//////////////////////// New One
protected  $dbse;
public function query($sql){
return mysqli_query($this->dbse,$sql) or die(mysql_error()); // Line 8
}    
public function fetch($sql){
$Data = array();
$Q = $this->query($sql);
while ($row = mysqli_fetch_array($Q)) {
$Data[] = $row;
}
return $Data;
}
}
$x = DB();
$x->dbse = $dbse;
}
?>

*جرب الكود بهذه الطريقة أظنه هكذا أفضل وأصح...

<?php

$dbse = @mysqli_connect("localhost", "root", "root") or die (mysql_error());

$db = "dbname";

mysqli_select_db($db);

if (!class_exists('DB')) {

class DB{

private $sql;

public function query($sql){

mysqli_query($db,$sql) or die(mysql_error()); // Line 8

return;

}

public function fetch($sql){

$Data = array();

$Q = $this->query($sql);

while ($row = mysqli_fetch_array($Q)) {

$Data[] = $row;

}

return $Data;

}

}

}


برمجة

مجتمع للمبرمجين من جميع المستويات لتبادل المعرفة والخبرات. ناقش لغات البرمجة المختلفة، الحلول البرمجية، والمشاريع.

24.9 ألف متابع