عندما طرحت هذا السؤال
. قامت شركتنا بتطوير مجموعة من برامج خدمة الرسائل القصيرة من جانب SP استنادًا إلى بروتوكول SGIP الخاص بشركة China Unicom لتوفير خدمة الرسائل القصيرة China Unicom 130. هذا النظام يعمل بنظام التشغيل Windows 2000. تستخدم قاعدة البيانات Microsoft SQLServer2000 وهي تعمل بشكل طبيعي لبعض الوقت. في الآونة الأخيرة، من أجل توفير بعض المعلومات لمستخدمي الرسائل القصيرة على الويب، من الضروري قراءة وكتابة قاعدة بيانات SQL Server من الويب. في الأصل، يجب أن يكون أفضل شريك لقاعدة بيانات SQL Server هو البرنامج النصي لخادم Microsoft IIS ASP، ولكن لقد اعتقدت شركتنا دائمًا أن الاستقرار والأمان لـ IIS + ASP ليسا مرضيين، وآمل أن أستخدم نصوص PHP لقراءة وكتابة SQL Server في نظام Linux.
تحليل المشكلة
في الأصل، لم تكن هناك مشكلة في قراءة وكتابة البرنامج النصي PHP لـ SQL Server، ويمكن أن يعمل بشكل جيد جدًا ضمن Apache لنظام التشغيل Windows وWindows IIS. بشكل عام، يمكن توصيله من خلال ODBC أو SQLServer Client، وكلها جاهزة تحت ويندوز. ومع ذلك، لا يوجد عميل ODBC وSQLServer جاهز في Linux ونحتاج إلى تثبيتهما بأنفسنا.
حل المشكلة
1.البرامج ذات الصلة
المصدر: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgzيمكن لهذا البرنامج توصيل قواعد بيانات MS SQLServer وSybase باستخدام Linux وUnix.
2. خطوات التثبيت والتكوين
الخطوة 1: ترجمة وتثبيت freetds:
بعد الحصول على freetds-0.53.tgz
، cp freetds-0.53.tgz /tmp/ (انسخ حزمة freetds إلى الدليل /tmp)
cd /tmp (أدخل الدليل )
tar zxvf freetds- 0.53.tgz (فك ضغطه)
cd freetds-0.53 (أدخل الدليل الذي تم فك ضغطه)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (أنشئ ملف Makefile، لقد قمت باختباره، make يمكن أن يفعل ذلك أيضًا)
تثبيت gmake (التثبيت)
أريد أن أقول شيئًا عن التكوين أعلاه --prefix=/usr/local/freetds يشير إلى التثبيت في الدليل /usr/local/freetds يشير 7.0 إلى تثبيت إصدار tds 7.0 (المشكلة الأحدث هي أنني لم أقم بإضافة معلمة الترجمة هذه، وتم تجميع النتيجة إلى 5.0 افتراضيًا. منفذ 5.0 للاتصال بقاعدة البيانات هو 4000، وليس 1433 لـ SQL Server)
الخطوة 2: إعادة ترجمة PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (يرجى ملاحظة أنه sybase)
إجراء
التثبيت
الخطوة 3: تكوين freetds
vi /usr/local/freetds/etc/freetds.conf
يمكن العثور على التكوين المحدد في هذا الملف مثال للوصف
: (التكوين النموذجي)
مضيف[sqlserver]
= sql_server_name_or_host_ip (اسم جهاز SQLServer الخاص بك أو عنوان IP)
المنفذ =
إصدار 1433 tds = 7.0
في ملف التكوين هذا، يمكنك تكوين طريقتين لتسجيل الدخول إلى مجال Windows أو تسجيل الدخول إلى حساب SQLServer.
الخطوة الرابعة: تكوين ملف php.ini
والعثور على الامتداد=
mssql70.so
.
الخطوة 5: إنشاء اتصال بقاعدة البيانات في php
$link=mssql_connect("sqlserver",$your_username,$your_password) أوالموت
("لا يمكن الاتصال بقاعدة البيانات");
echo $link;
لقد حصلت على رقم الرابط، تهانينا، لقد قمت بتكوينه. إذا ظهر استدعاء لوظيفة غير محددة: mssql_connect()، فيرجى ملاحظة: اقرأ بعناية عملية التثبيت والتكوين أعلاه لمعرفة الخطوة التي أخطأت فيها.
ملاحظة: اسم sqlserver هو معلمة المضيف المحددة في /usr/local/freetds/etc/freetds.conf. إذا كتبت عنوان IP، فهو عنوان IP.
بالنسبة لعمليات قاعدة البيانات الأخرى، راجع وظائف mssql ذات الصلة
. لاحظ أن اللغة الصينية غير مدعومة في عبارات SQL !!!
الخطوة 6: التصحيح
إذا لم تتمكن من الاتصال، فيرجى العثور عليها في ملف التكوين freetds؛ /freetds.log. قم بإزالة الفاصلة المنقوطة الموجودة في المقدمة، وقم بتنفيذ البرنامج النصي للاختبار مرة أخرى، وتحقق من الملف /tmp/freetds.log. ويمكن أن يخبرك بالكثير من معلومات الخطأ لمساعدتك في استكشاف المشكلة وإصلاحها.
(e129)