امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
mysqli و PDO در دیتابیس
نویسنده پیام
crafcrab آفلاین
كاربر دو ستاره
**

ارسال‌ها: 216
موضوع‌ها: 79
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 42
( 33 تشکر در 31 ارسال )
ارسال: #1
Question  mysqli و PDO در دیتابیس
سلام
دوستان من یک کلاس برای کار با دیتابیس تهیه کردم این کلاس در ورژن 2.4 وب سرور wamp بدون مشکل کار میکرد اما وقتی wamp 2.5 ریختم میگه این دستورات منسوخ شده

کلاس دیتابیس من:

کد:
<?php
class database{
   var $last_query; //Saved result of the last query made
   var $last_result; //Results of the last query made
   var $func_call; //A textual description of the last query/get_row/get_var call
   var $link; //database link
   var $lastquery; //last query
   var $result; //query result

   // Connect to MySQL database
   function database($DB_NAME,$DB_USER,$DB_PASS) {
       $this->link=mysql_connect(DB_HOST, $DB_USER, $DB_PASS) or die('ارتباط با سرور ممکن نیست'.'<br>'.'لطفا چند دقیقه دیگر دوباره سعی کنید'.'<br>'.'در صورت رفع نشدن مشکل به تیم پشتیبانی سایت در قسمت تماس با ما اطلاع دهید'.'<br>'.'با تشکر');
       //Set All Charsets to UTF8
       mysql_query("SET character_set_results=utf8 , character_set_client=utf8 , character_set_connection=utf8 , character_set_database=utf8 , character_set_server=utf8");
       mysql_select_db($DB_NAME) or die('خطا در برقراری ارتباط'.'<br>'.'لطفا چند دقیقه دیگر دوباره سعی کنید'.'<br>'.'در صورت رفع نشدن مشکل به تیم پشتیبانی سایت در قسمت تماس با ما اطلاع دهید'.'<br>'.'با تشکر');
   }
   /** Query the database.
     * @param $query The query.
     * @return The result of the query into $lastquery, to use with fetchNextObject().
     */
   function query( $query ){
       $this->lastquery=$query;
       $this->result=@mysql_query( $query, $this->link );
       return $this->result;
   }
   /** Do the same as query() but do not return nor store result.
     * Should be used for INSERT, UPDATE, DELETE...
     * @param $query The query.
     * @param $debug If true, it output the query and the resulting table.
     */
   function execute($query){
     @mysql_query($query);
   }
   /** Convenient method for mysql_fetch_object().
     * @param $result The ressource returned by query().
     * @return An ARRAY representing a data row.
     */
   function fetchArray($result){
   if ($result == NULL)
       $result = $this->result;
   if ($result == NULL || mysql_num_rows($result) < 1)
       return NULL;
   else
       return mysql_fetch_assoc($result);
   }

   /** Close the connecion with the database server.
     * It's usually unneeded since PHP do it automatically at script end.
     */
   function close(){
     mysql_close($this->link);
   }
   /** Get the number of rows of a query.
     * @param $result The ressource returned by query(). If NULL, the last result returned by query() will be used.
     * @return The number of rows of the query (0 or more).
     */
   function numRows($result = NULL){
     if ($result == NULL)
       return @mysql_num_rows($this->result);
     else
       return mysql_num_rows($result);
   }
}
?>



تا انجایی که گشتم فهیدم @ باید حذف کنم مثل اینکه منسوخ شده در ورژن جدید php
مورد دیگه اینکه میگه باید از mysqli یا PDO استفاده کنم برای کار با دیتابیس
یه مثال در این لینک زده :
http://php.net/manual/en/mysqlinfo.api.choosing.php
ولی نمیدونم من چطوری کد خودم رو با مثال بالا به روز کنم
نمیخوام نام و ورودی های کلاسم عوض شه چون در این صورت کل قسمتهایی که در پروژه خودم از این کلاس استفاده کردم باید تغییر بدم

اگه میشه کمک کنید آپدیت شده کلاس خودم با کمک mysqli بنویسم
(آخرین ویرایش در این ارسال: ۰۲-آذر-۱۳۹۴, ۱۱:۲۲:۳۶، توسط lord_viper.)
۰۱-آذر-۱۳۹۴, ۲۲:۴۴:۱۹
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: mysqli و PDO در دیتابیس
توابع mysql دیگه خیلی قدیمی شده بود و منسوخ شد باید از کلاسهای mysqli یا pdo استفاده کنید که pdo هم جدیدتر هم قابلیتهای بهتر و بیشتری داره


تابع کانکت رو برای شما تبدیل کردم بقیه توابع رو هم راحت میتونین تبدیل کنین

کد:
function database($DB_NAME,$DB_USER,$DB_PASS) {

        $options = array(
        PDO::ATTR_PERSISTENT         => true,
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");

       try {
          $this->link = new PDO('mysql:host='.DB_HOST.';dbname=$DB_NAME;charset=utf8', $DB_USER, $DB_PASS, $options);
       }
       catch(PDOException $e)
      {
          echo $e->getMessage();
      }

    }

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


کد:
http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html
http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
(آخرین ویرایش در این ارسال: ۰۲-آذر-۱۳۹۴, ۱۱:۲۵:۱۹، توسط lord_viper.)
۰۲-آذر-۱۳۹۴, ۱۱:۲۱:۵۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : crafcrab


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل با دیتابیس سایت ha_60 8 5,632 ۰۴-خرداد-۱۳۸۶, ۰۵:۱۶:۱۶
آخرین ارسال: NabiKAZ

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS