سؤال

هل من الممكن ، من داخل البرنامج النصي PHP ، تنفيذ نفس الأوامر التي يمكنك مع عميل MySQL؟

أعلم أنه يمكنني من الناحية النظرية أن أتصل بـ "نظام" لاستدعاء عميل MySQL المثبت على النظام ، لكنني لست متأكدًا من كيفية تجنب التفاعل (لا أريد Repl/Shell ، أريد فقط إطلاق أمر). هل هناك طريقة لتنفيذ الأوامر عبر عميل MySQL دون الذهاب إلى القشرة؟ في كلتا الحالتين ، يبدو هذا النهج ضعيفًا بعض الشيء.

للتوضيح ، عندما أقول الأمر ، أشير إلى المتابعة: http://dev.mysql.com/doc/refman/5.0/en/mysql-commands.html

هل كانت مفيدة؟

المحلول

while ($obj = mysql_fetch_object($res)) {
        $file = $path.$obj->base.".sql";
        $cmd = "rm -f ".$file;
        exec($cmd);
        $cmd = "nice -19 mysqldump -h".$host." -u".$login." -p".$pass." ".$obj->base." > ".$file;
        exec($cmd);
        $sql = "update save_mysql set last_daily=NOW() where base = '".$obj->base."'";
        mysql_query($sql);
}

هل تبحث عن شيء مثل هذا.

باستخدام وظيفة exec ، يمكنك الاتصال بأمر MySQL

نصائح أخرى

يبدو الاختراق. هناك يتوقع للتعامل مع "تفاعل البرمجة" ، أي طريقة لانتظار المطالبة بقول أشياء معينة. لا أعتقد أن EXEC ستعمل ، إلا إذا كان بإمكانك تمرير مفاتيح محددة وتشغيل MySQL في وضع غير تفاعلي. اعتمادًا على ما تحاول القيام به ، سأقول أنه من الأفضل محاولة اكتشاف أمر SQL الذي يمكنك إرساله عبر libs العميل العادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top