majid1605
دوشنبه 04 شهریور 1392, 20:08 عصر
سلام
دوستان لطف می کنند یه نگاهی به کد زیر بندازن ایرادش چیه نمیشه با پایگاه داده ارتباط برقرار کرد.
<?php
require("config.php");
class gdg_DB {
private $DB_HostName ;
private $DB_Name ;
private $DB_UserName ;
private $DB_Pass ;
private $ConnectionResult ;
public function __construct()
{
if($DB_SERVER = null || $DB_USER = null || $DB_DATABASE = null)
die ('Cannot select database');
else
{
$this->DB_HostName = $DB_SERVER;
$this->DB_Name = $DB_DATABASE ;
$this->DB_UserName = $DB_USER ;
$this->DB_Pass = $DB_PASSW ;
$this->Connect();
}
}
private function Connect()
{
$this->ConnectionResult = new mysqli($this->DB_HostName , $this->DB_UserName , $this->DB_Pass , $this->DB_Name);
if(!$this->ConnectionResult)
{
echo"Unable to connect to the database. Error number: ".mysqli_connect_error();
}
else
{
//echo 'Connected Successfully';
// mysqli_select_db($this->ConnectionResult ,"gdg");
return $this->ConnectionResult ;
}
}
/* private function Select_DB()
{
mysqli_select_db($this->ConnectionResult ,$this->DB_Name);
}*/
/* public function __destruct()
{
$this->disconnect();
}*/
public function Select()
{
}
public function Update()
{
}
public function Insert()
{
$sql = "INSERT INTO post (post_id,post_author,post_date,post_edit_date,
post_title,post_content,post_name,post_url,post_ch ange,post_visits,post_attach )
VALUES ( 14, '3', '4', 'H','5',1, '3', '4', 'H','5','88')";
$this->SqlQuery($sql);
// return $result;
}
public function Delete()
{
}
public function Disconnect()
{
mysqli_close($this->ConnectionResult);
$this->ConnectionResult = null;
}
private function SqlQuery($sql)
{
$return_result=$this->ConnectionResult->query($sql);
if ($return_result)
{
return $return_result;
}
else
{
$this->Error($sql);
}
}
private function Error($sql)
{
echo($this->ConnectionResult->error) . '<br>';
die('error: ' . $sql);
}
}
?>
مشکل اینه تابع کانکت به متغیر پسورد ایراد می گیره .
رشته خالی که میزارم به تابع mysqli_select_db ایراد می گیره
ولی مشخصات دیتابیس رو مستقیم تووی تابع کانکت وارد می کنم مشکل حل میشه به شرطی که اسم پایگاه داده رو هم همونجا وارد کنم .
تابع insert رو واسه چک کردن اونجوری نوشتم .
یه سوال دیگه
یکی از دوستان میشه بگید چطور میشه تابع insert رو جوری نوشت که برای همه جداول قابل استفاده باشه
ظاهراً این تابع اینکار رو انجام میده ولی من چیزی متوجه نشدم اگه توضیح بدید ممنون میشم .
کلا اولین برنامه ایی که با php می خوام نویسم .
public function insert_data($table, $insert_values)
{
foreach ($insert_values as $key => $value)
{
$keys[] = $key;
$insertvalues[]='\'' . $value . '\'';
}
$keys =implode(',', $keys);
// Sanitizing the data...
$insertvalues=(implode(',', $insertvalues));
$sql ="INSERT INTO $table ($keys) VALUES ($insertvalues)";
$result=$this->mySql->query($sql);
}
دوستان لطف می کنند یه نگاهی به کد زیر بندازن ایرادش چیه نمیشه با پایگاه داده ارتباط برقرار کرد.
<?php
require("config.php");
class gdg_DB {
private $DB_HostName ;
private $DB_Name ;
private $DB_UserName ;
private $DB_Pass ;
private $ConnectionResult ;
public function __construct()
{
if($DB_SERVER = null || $DB_USER = null || $DB_DATABASE = null)
die ('Cannot select database');
else
{
$this->DB_HostName = $DB_SERVER;
$this->DB_Name = $DB_DATABASE ;
$this->DB_UserName = $DB_USER ;
$this->DB_Pass = $DB_PASSW ;
$this->Connect();
}
}
private function Connect()
{
$this->ConnectionResult = new mysqli($this->DB_HostName , $this->DB_UserName , $this->DB_Pass , $this->DB_Name);
if(!$this->ConnectionResult)
{
echo"Unable to connect to the database. Error number: ".mysqli_connect_error();
}
else
{
//echo 'Connected Successfully';
// mysqli_select_db($this->ConnectionResult ,"gdg");
return $this->ConnectionResult ;
}
}
/* private function Select_DB()
{
mysqli_select_db($this->ConnectionResult ,$this->DB_Name);
}*/
/* public function __destruct()
{
$this->disconnect();
}*/
public function Select()
{
}
public function Update()
{
}
public function Insert()
{
$sql = "INSERT INTO post (post_id,post_author,post_date,post_edit_date,
post_title,post_content,post_name,post_url,post_ch ange,post_visits,post_attach )
VALUES ( 14, '3', '4', 'H','5',1, '3', '4', 'H','5','88')";
$this->SqlQuery($sql);
// return $result;
}
public function Delete()
{
}
public function Disconnect()
{
mysqli_close($this->ConnectionResult);
$this->ConnectionResult = null;
}
private function SqlQuery($sql)
{
$return_result=$this->ConnectionResult->query($sql);
if ($return_result)
{
return $return_result;
}
else
{
$this->Error($sql);
}
}
private function Error($sql)
{
echo($this->ConnectionResult->error) . '<br>';
die('error: ' . $sql);
}
}
?>
مشکل اینه تابع کانکت به متغیر پسورد ایراد می گیره .
رشته خالی که میزارم به تابع mysqli_select_db ایراد می گیره
ولی مشخصات دیتابیس رو مستقیم تووی تابع کانکت وارد می کنم مشکل حل میشه به شرطی که اسم پایگاه داده رو هم همونجا وارد کنم .
تابع insert رو واسه چک کردن اونجوری نوشتم .
یه سوال دیگه
یکی از دوستان میشه بگید چطور میشه تابع insert رو جوری نوشت که برای همه جداول قابل استفاده باشه
ظاهراً این تابع اینکار رو انجام میده ولی من چیزی متوجه نشدم اگه توضیح بدید ممنون میشم .
کلا اولین برنامه ایی که با php می خوام نویسم .
public function insert_data($table, $insert_values)
{
foreach ($insert_values as $key => $value)
{
$keys[] = $key;
$insertvalues[]='\'' . $value . '\'';
}
$keys =implode(',', $keys);
// Sanitizing the data...
$insertvalues=(implode(',', $insertvalues));
$sql ="INSERT INTO $table ($keys) VALUES ($insertvalues)";
$result=$this->mySql->query($sql);
}