PDA

View Full Version : سوال: خطا در My SQL



navidAhwaz
دوشنبه 22 تیر 1388, 16:14 عصر
سلام دوستان
من مشکلی در رابطه با my sql داشتم به این صورت که با پیغام خطای زیر مواجه شدم



Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'p' (4) in /home/user/public_html/inc/dbClass.php on line 19

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/user/public_html/inc/dbClass.php on line 34

با تشکر

navidAhwaz
دوشنبه 22 تیر 1388, 16:16 عصر
dbClass.php

<?php
class content
{
var $result;
var $result2;
var $result3;
var $allresult;

function OpenCon ($DBInfo)
{
global $con;
if ( !list($dbuser, $dbpass, $dbhost) = split ('-', $DBInfo) )
{
return false;
}
else
{
if ( !$con = mysql_connect ($dbhost, $dbuser, $dbpass) )
{
return false;
}
else
{
return true;
}
}
}

//---
function OpenDB ($dbname)
{
global $con, $dbname;
if ( !mysql_select_db($dbname, $con) )
{
return false;
}
else
{
return true;
}
}

//---
function CloseCon ()
{
global $con;
if ( !mysql_close ($con) )
{
return false;
}
else
{
return true;
}
}

//---
function query ($sql)
{
global $con;
if ( $this-> result = mysql_query ($sql) )
{
return true;
}
else
{
return false;
}
}

//---
function fetchArray ()
{
return (@mysql_fetch_array ($this-> result));
}

//---
function error ()
{
global $con;
return (@mysql_error ($con));
}

//---
function NumRows ($query)
{
global $con, $dbname;
return @mysql_num_rows ($query);
}

//---
function query2 ($sql)
{
global $con;
if ($this-> result2 = mysql_query ($sql)) {
return true;
} else {
return false;
}
}

//---
function fetchArray2 ()
{
return (@mysql_fetch_array ($this-> result2));
}
//---
function error2 ()
{
global $con;
return (@mysql_error ($con));
}

//---
function query3 ($sql)
{
global $con;
if ($this-> result3 = mysql_query ($sql))
{
return true;
}
else
{
return false;
}
}

//---
function freeResult3 ()
{
mysql_free_result ($this-> result3);
}

//---
function fetchArray3 ()
{
return (@mysql_fetch_array ($this-> result3));
}

//---
function error3 ()
{
global $con;
return (@mysql_error ($con));
}

//---
function GetRows ($sql)
{
global $con;
$result = mysql_query ($sql);
return mysql_num_rows ($result);
}

//---
function GetRow ($sql)
{
global $con;
$result = @mysql_query($sql);
return (@mysql_fetch_array ($result));
}

//---
function GetRowValue ($sql, $field)
{
global $con;
$result = mysql_query ($sql);
$row = mysql_fetch_array ($result);
return $row[$field];
}

//---
function GetUserInfoByID ($id)
{
global $con;
$sql = "SELECT * FROM `admin` WHERE 1 AND `usr_id` = $id LIMIT 1";
$result = mysql_query ($sql);
$row = mysql_fetch_array ($result);
return $row;
mysql_free_result ($result);
}

}
?>

امیـرحسین
دوشنبه 22 تیر 1388, 17:09 عصر
خطا واضحهه.
نوشته امکان ارتباط با دیتابیس (تابع mysql_connect) وجود نداره چون مقدار پارامتر host که حاوی حرف p هست، غلطه و وجود نداره.
اول مقدار متغیر DBInfo رو چک کنید و بعد مقدار متغیر dbhost.

درضمن دفعه بعد، کدهاتون رو داخل تگ code بذارید که خونده شه.

navidAhwaz
سه شنبه 23 تیر 1388, 15:22 عصر
آقا اگه می شه واضح تر بگید که من تازه کار هم متوجه شم.
اگه می شه دقیق تر بگید کجاش رو تغییر بدم یا اینکه نمونه کد درستش رو بزارید.
با تشکر

navidAhwaz
پنج شنبه 25 تیر 1388, 21:26 عصر
در ضمن توی لوکال هم ارروری نمی ده.

امیـرحسین
پنج شنبه 25 تیر 1388, 22:09 عصر
اینرو در تابع OpenCon در خط اول قرار بدید:

die( var_dump($DBInfo) );
این دستور باعث توقف برنامه میشه و خروجی شبیه اینه:
hostname-username-password
که خطا میگه مقدار hostname غلطه! با هاستینگتون تماس بگیرید بگید برای ارتباط با دیتابیس، مقدار host رو چی قرار بدم.

mohsenw700
جمعه 26 تیر 1388, 01:29 صبح
ببخشید از شما این سوال را میپرسم!!!!
اصلا به درستی table ها را ایحاد کردی روی هاست جدیدتون؟

مشکل با host داره !!!!!

navidAhwaz
جمعه 26 تیر 1388, 13:44 عصر
ببخشید از شما این سوال را میپرسم!!!!
اصلا به درستی table ها را ایحاد کردی روی هاست جدیدتون؟

مشکل با host داره !!!!!

سایت کاملا بالاست و هیچ مشکلی در کارکرد نداره و کاملا با دیتابیس ارتباط داره ولی روی سرور که میاد این اررور رو می ده
در ضمن سرور هم مشکلی نداره چون توی 4 تا هاست برنامه تست شده و همین پیغام خطا رو داده
مطمئنا مشکل از برنامست.

navidAhwaz
جمعه 26 تیر 1388, 13:51 عصر
اساتید من اگر یه کدی بهم بدید که فقط پیغام خطا ها نمایش داده نشن کافیه چون مشکلی با کارکرد برنامه ندارم
فقط این پیغام بالای هدر سایت نمایش داده می شه.
با تشکر از راهنمایی های ارزشمند شما.

navidAhwaz
جمعه 26 تیر 1388, 13:53 عصر
اینرو در تابع OpenCon در خط اول قرار بدید:

die( var_dump($DBInfo) );
این دستور باعث توقف برنامه میشه و خروجی شبیه اینه:
hostname-username-password
که خطا میگه مقدار hostname غلطه! با هاستینگتون تماس بگیرید بگید برای ارتباط با دیتابیس، مقدار host رو چی قرار بدم.

این رو هم امتحان کردم مقادیر hostname-username-password رو جلوی عبارت استرینگ بهم نمایش داد.
با تشکر

navidAhwaz
جمعه 26 تیر 1388, 14:16 عصر
آقا درست شد

داشتم توی انجمن php می گشتم یه مبحثی مدیران ایجاد کردند به اسم
بدست گیری خطاها در PHP
http://www.barnamenevis.org/forum/showthread.php?t=79716

اونجا musiox گفته


توی php.ini می تونی display_errors با off تنظیم کنی. یا می تونی از
error_reporting(0);
استفاده کنی . برای لاگ هم که از error_log توی همون هندلری که نوشتی استفاده کنی.بهتره از حالت پیش فرضش که syslog هست استفاده نکنی بجاش توی یه فایلی که خودت می خوای لاگ رو ذخیره کنی . اگه برنامه نویسی OO می کنی می تونی از اطلاعات debug_backtrace هم استفاده کنی .

منم از این کد:

error_reporting(0);
در قسمت:


function OpenCon ($DBInfo)
{
error_reporting(0);
global $con;

استفاده کرم الان هم برنامه درست کار می کنه هم اینکه خطا نمی ده.

با تشکر.

در ضمن اگر دلیل قاطعانعی کسی می تونه بگه که بدون استفاده از این کد بتونیم خطا رو درست کنیم اعلام کنه.