redhat2
دوشنبه 25 دی 1391, 12:02 عصر
سلام به دوستان ، من یه مشکلی توی این کد میبینم ،
function fetchAllUsers()
{
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare("SELECT
id,
user_name,
display_name,
password,
email,
activation_token,
last_activation_request,
lost_password_request,
active,
title,
sign_up_stamp,
last_sign_in_stamp
FROM ".$db_table_prefix."users");
$stmt->execute();
$stmt->bind_result($id, $user, $display, $password, $email, $token, $activationRequest, $passwordRequest, $active, $title, $signUp, $signIn);
while ($stmt->fetch()){
$row[] = array('id' => $id, 'user_name' => $user, 'display_name' => $display, 'password' => $password, 'email' => $email, 'activation_token' => $token, 'last_activation_request' => $activationRequest, 'lost_password_request' => $passwordRequest, 'active' => $active, 'title' => $title, 'sign_up_stamp' => $signUp, 'last_sign_in_stamp' => $signIn);
}
$stmt->close();
return ($row);
}
این function زیرمجموعه از یک کلاس هستش ، طرف اومده و global $mysqli,$db_table_prefix و توی هر تابعش اینها دیده میشه ، چه فرقی داره بین اینکه ما اینا را در اول کلاس به صورت private تعریف کنیم با اینکه بیایم و مثل همین طرف ، اینها را به صورت Global تعریف کنیم . یه سوال دیگه هم داشتم :
به نظر شما این کد منطقی هست :
<?php
class functionClass
{
private $_dblocal = "localhost";
private $_dbuser = "root";
private $_pass = "";
private $_dbname = "meSaeed";
private $_dbtable;
private $_dbsql;
protected $_username;
//
function __construct()
{
$config = mysql_connect($this->_dblocal,$this->_dbuser,$this->_pass) or mysql_error();
mysql_select_db($this->_dbname,$config) or mysql_error();
}
function SetTable($dbtable)
{
$this->_dbtable = $dbtable;
return $this->_dbtable;
}
//User's Function ...
function existUsername($username)
{
global $mysql;
self::SetTable("login");
$this->_username = $username;
$this->_dbsql = "SELECT * FROM ".$this->_dbtable." WHERE username = '".$this->_username."'";
$mysql = mysql_query($this->_dbsql);
if(mysql_num_rows($mysql) == 1)
{
return true;
}
else
{
return false;
}
}
}
?>
یعنی بهتر از این هم میشه نوشت ، منظور درباره ی این هست که بیایم یه تابع تغریف کنیم به نام settable و این تابع را در هر تابعی که خواستیم self کنیم ، یعنی منطی هست و چیزه بهتر از این هم وجود داره ؟
function fetchAllUsers()
{
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare("SELECT
id,
user_name,
display_name,
password,
email,
activation_token,
last_activation_request,
lost_password_request,
active,
title,
sign_up_stamp,
last_sign_in_stamp
FROM ".$db_table_prefix."users");
$stmt->execute();
$stmt->bind_result($id, $user, $display, $password, $email, $token, $activationRequest, $passwordRequest, $active, $title, $signUp, $signIn);
while ($stmt->fetch()){
$row[] = array('id' => $id, 'user_name' => $user, 'display_name' => $display, 'password' => $password, 'email' => $email, 'activation_token' => $token, 'last_activation_request' => $activationRequest, 'lost_password_request' => $passwordRequest, 'active' => $active, 'title' => $title, 'sign_up_stamp' => $signUp, 'last_sign_in_stamp' => $signIn);
}
$stmt->close();
return ($row);
}
این function زیرمجموعه از یک کلاس هستش ، طرف اومده و global $mysqli,$db_table_prefix و توی هر تابعش اینها دیده میشه ، چه فرقی داره بین اینکه ما اینا را در اول کلاس به صورت private تعریف کنیم با اینکه بیایم و مثل همین طرف ، اینها را به صورت Global تعریف کنیم . یه سوال دیگه هم داشتم :
به نظر شما این کد منطقی هست :
<?php
class functionClass
{
private $_dblocal = "localhost";
private $_dbuser = "root";
private $_pass = "";
private $_dbname = "meSaeed";
private $_dbtable;
private $_dbsql;
protected $_username;
//
function __construct()
{
$config = mysql_connect($this->_dblocal,$this->_dbuser,$this->_pass) or mysql_error();
mysql_select_db($this->_dbname,$config) or mysql_error();
}
function SetTable($dbtable)
{
$this->_dbtable = $dbtable;
return $this->_dbtable;
}
//User's Function ...
function existUsername($username)
{
global $mysql;
self::SetTable("login");
$this->_username = $username;
$this->_dbsql = "SELECT * FROM ".$this->_dbtable." WHERE username = '".$this->_username."'";
$mysql = mysql_query($this->_dbsql);
if(mysql_num_rows($mysql) == 1)
{
return true;
}
else
{
return false;
}
}
}
?>
یعنی بهتر از این هم میشه نوشت ، منظور درباره ی این هست که بیایم یه تابع تغریف کنیم به نام settable و این تابع را در هر تابعی که خواستیم self کنیم ، یعنی منطی هست و چیزه بهتر از این هم وجود داره ؟