بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در security
سلام
کلاس DB رو طبق آموزشهای استاد تغییر دادم ولی با این ارور مواجه شدم
ممنون می شم بررسی کنید
<?
class Db{
private $connection;
private static $db;
public static function getInstance($option=null){
if(self::$db==null){
self::$db=new Db($option);
}
return self::$db;
}
private function __construct($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 due to: " . $this->connection->connect_error);
exit;
}
$this->connection->query("SET NAMES 'utf8'");
}
private function safeQuery(&$sql,$data){
foreach ($data as $key=>$value){
$value=$this->connection->real_escape_string($value);
$value="'$value'";
$sql=str_replace("<-$key->",$value,$sql);
}
$this->connection->query($sql);
}
public function insert($sql,$data=array()){
$result=$this->safeQuery($sql,$data);
if(!$result){
echo "Your query was ".$sql." Faild! Cause: ".mysql_error($this->connection());
exit;
}
return $result;
}
public function modify($sql,$data=array()){
$result=$this->csafeQuery($sql,$data);
if(!$result){
echo "Your query was ".$sql." Faild! Cause: ".mysql_error($this->connection());
exit;
}
return $result;
}
public function first($sql,$data=array()){
$records=$this->query($sql,$data);
if($records==null){
return null;
}
return $records[0];
}
public function query($sql,$data=array()){
$result=$this->safeQuery($sql,$data);
if(!$result){
echo "Your query was ".$sql." Faild! Cause: ".mysql_error($this->connection());
exit;
}
$records=array();
if($result->num_rows==0){
return null;
}
while($row = $result->fetch_assoc()) {
$records[]=$row;
}
return $records;
}
private function connection(){
return $this->connection;
}
private function close(){
$this->connection->close;
}
}
+2
0
من دو تا ایراد ظاهری میبینم که اولی شاید مهم نباشه ولی دومی قطعا ایراد داره. اولی این که تابع Construct شاید نباید private تعریف بشه و باید public باشه. دومی این که در تابع safeQuery هیچ مقداری return نمی شه. (10 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
