لماذا لا يمكن استخدام دوال mysql_* القديمة في PHP وبماذا يمكن استبدالها؟
مرحباً بالجميع! أنا مطور PHP مبتدئ، أتعلم من كتب قديمة. في جميع الأمثلة، الاتصال بقاعدة بيانات MySQL يبدو هكذا:
```php
$link = mysql_connect('localhost', 'root', '');
mysql_select_db('my_database', $link);
$result = mysql_query("SELECT * FROM users WHERE id = " . $_GET['id']);
while ($row = mysql_fetch_assoc($result)) {
echo $row['name'];
}
```
كل شيء يعمل، لكني أرى أن هذه الدوال في PHP الحديثة تسبب أخطاء. في السجلات يكتب أنها قديمة. في المنتديات يقولون إنها أُزيلت تماماً في PHP 7. أفهم أنني بحاجة للانتقال إلى شيء جديد، لكني لا أفهم: ما هي المشكلة تحديداً في mysql_*؟ فهي تعمل. ما خطورتها؟ وماذا يجب استخدام بدلاً منها — mysqli أم PDO؟ ما الفرق؟ سأكون ممتناً لشرح مفصل مع أمثلة لأتمكن من إعادة كتابة كودي بشكل صحيح.
<<>>
الأسباب الرئيسية للتخلي عن mysql_*
لقد واجهت مشكلة الكود القديم الكلاسيكية. دوال mysql_* أُزيلت