بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل در اتصال دیتابیس به کد های پی اچ پی

مدیریت گفتگو
kuorosh 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام با این خطا مواجه هستم

ممنون اگه بگید مشکل کجاست؟؟؟

منتظرم دوستان.

نظرات

mhpakdel 10 سال پیش
ببین خط 37 فایل db چیه. من حدس میزنم ارتباط داره با متد کوئری.
hosseinAmini 10 سال پیش
فکر کنم تو صدا کردن db از $this استفاده نکردی
fandroid 10 سال پیش
دقیقا حرفی هست که حسین جان زده non-object یعنی میگه من انتظار داشتم شی ای به ان اشاره کنه در صورتی که چنین شی ای وجود نداره پس باید ببینی یجا از کدت از $this استفاده کردی یا نه امکانم داره connectionکه برای db تعریف کردی کلی تعریف کردی و به شی اختصاص ندادی یعنی کانکشن رو ساختی ولی نه برای اون شی

پاسخ‌ها 7

kuorosh 10 سال پیش

سلام دوستان خط 37 از دیتابیس اینه به نظرتون مشکلش کجاست.

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;
}


نظرات

fandroid 10 سال پیش
دوست عزیز بهتون گفتم که اونجایی که نوشتی $this->connection->query خالی هست احتمالا موقع ساخت کانکشن $this نذاشتی وکلی تعریف کردی و اون شی که ساختی به dbوصل نیس کافیه چک کنی ببینی برای وصل شدن به db و ساخت کانکشن از this استفاده کردی یا نه
mhpakdel 10 سال پیش
مشکل انگار از خط 37 یا متد query نیست. یه سوال؟ آیا از query برای update رکورد یا delete از دیتابیس استفاده نکردی؟ چون برا منم یه بار این خطا اومد. بعدش فهمیدم که دارم از متد اشتباهی برای آپدیت یا خذف رکورد استفاده میکنم. متد query فقط برای گزارش گیری هست از دیتابیس و من اینو قبلش نمیدونستم. یه چک بکنید شاید دلیلش این باشه.
kuorosh 10 سال پیش

من فقط همین چیزهایی که استاد در فصل دوم گفتند رو پیاده  کردم.

ولی خودم هم نمیدونم که مشکل چیه؛ چون همه رو درست تایپ کردم و جابجا نیست.

حالا جریان چیه نمیدونم.

اینم تیکه کدشه.

 

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

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


این کد پایین مربوط به دیتابیسه

<?php
class Db {

private $connection;
public function __constructor($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();
}
}

منتظر کمکتون هستم

نظرات

mhpakdel 10 سال پیش
دوباره ویدیو رو نگاه کردم. اشکال از کدهای این بخش از فایل شما نیست. اگه ممکنه کدهای فایل index رو بذارید تا شاید ایراد اگه از اونجا باشه پیداش کنیم.
mhpakdel 10 سال پیش
کدهای فایل config رو بذارید. ایندکس رو دیدم اول همین کد ها گذاشتید.
mhpakdel 10 سال پیش
خود دیتابیس رو هم بررسی کنید. ببینید اسم جدول ها و فیلدها دقیقا همینایی هست که توی کد نوشتید یا خیر.
kuorosh 10 سال پیش

خیلی ممنونم که راهنمایی میکنید.

این هم کدهای کانفیک هستش

<?php
global $config;
$config['db']['host'] = 'localhost';
$config['db']['user'] = 'root';
$config['db']['pass'] = '';
$config['db']['name'] = 'notes';

نظرات

mhpakdel 10 سال پیش
اشکال از اینجا هم نیست. خود دیتابیس رو چک کردین؟ اگه ایراد از اونجا هم نباشه احتمال داره یه ایرادی در تابع dump از فایل common باشه. اونم بررسی کنید. چون فایل های اصلی که index و db و config بودن ایرادی ندارن، دیگه باید ایراد یا از دیتابیس باشه یا فایل common.
kuorosh 10 سال پیش

دیتا بیس فکر نکنم مشکلی داشته باشه شاید از همون دامپ باشه

باید دوباره چک کنم . ولی کامن رو هم از همونی که استاد گفت نوشتم.

دیتابیس هم تغییری نکرده

خبرشو میدم بهتون

بازم ممنون که رسیدگی کردید واقعا متشکرم

 

نظرات

kuorosh 10 سال پیش

این کدهای کامن هستش

چیز خاصصی نداشت


<?
function br($ret = false){
if ($ret){
return "<br>\n";
} else {
echo "<br>\n";
}
}
?>
<?
function hr($return = false) {
if ($return) {
return "<hr>\n";
} else {
echo "<hr>\n";
}
}
?>
<?
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 "<pre>$out</pre>";
} else {
echo "<pre>$out</pre>";
}
}
?>

نظرات

هادی بی غم 10 سال پیش
به نظر میاد آدرس فایل پروژه notess یک s اضافه داره اینو درستش کنید احتمالا حل میشه اگه دقیقا طبق آموزش جلو رفته باشین notes درسته C:\dev\workspace\web\notes\db.php
fandroid 10 سال پیش

سلام دوست عزیز مشکلت رو یافتم constructor نیس construct هست واسه همین کانکشن ساخته نمیشه اصلاح کن درست میشه :)

نظرات

kuorosh 10 سال پیش

Oh My God

آب در کوزه و ما تشنه لبان میگردیم.

واقعا این همه دقت عالی بود.

خدای من اصلا باورم نمیشد که این همه الاف شدن سر دوتا حرف اضافه باشه.

خیلی عالی بود و ممنونم از تون واقعا.

برای همه دوستان که جواب دادند و جواب ندادند آرزوی موفقیت میکنم و امیدوارم از این مشکل ها برای هیچ کدومتون پیش نیاد.

نظرات

fandroid 10 سال پیش
خواهش میکنم دوست عزیز کاری نکردم موفق باشی :)
ABOLFAZL 10 سال پیش
بسیار تایپیک هوشمندانه ای بود و بسیار کار ساز من هم این مشکل رو داشتم و از طریق این تایپیک مشکلی ک یک ساعت مشغولش بودمر حل کردم بسیار ممنون

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