উত্তর:
এটি স্বাভাবিক, যেমন অজ্ঞাতনামা ব্যবহারকারীর জন্য এটি ইনস্টল করা অবস্থায় দ্রুপাল সেই প্রবেশটি তৈরি করে। যে থেকে সম্পন্ন করা হয় user_install () (Drupal এর 7), বা system_install () , যা নিম্নলিখিত কোড ধারণ করে।
// Drupal 7.
// Insert a row for the anonymous user.
db_insert('users')
->fields(array(
'uid' => 0,
'name' => '',
'mail' => '',
))
->execute();
// Drupal 6.
// Inserting uid 0 here confuses MySQL -- the next user might be created as
// uid 2 which is not what we want. So we insert the first user here, the
// anonymous user. uid is 1 here for now, but very soon it will be changed
// to 0.
db_query("INSERT INTO {users} (name, mail) VALUES('%s', '%s')", '', '');
// …
// This sets the above two users uid 0 (anonymous). We avoid an explicit 0
// otherwise MySQL might insert the next auto_increment value.
db_query("UPDATE {users} SET uid = uid - uid WHERE name = '%s'", '');
"ব্যবহারকারী" সারণীতে থাকা ডেটা সহ "নোড" টেবিলের অন্তর্ভুক্ত ডেটাতে যোগদান করার সময় সেই প্রবেশটি সাধারণত ব্যবহৃত হয়।
এন্ট্রি না থাকায় দ্রুপাল কিছু পরিস্থিতিতে সঠিকভাবে কাজ না করতে পারে।
আপনার যদি ডাটাবেসে বেনামে ব্যবহারকারীর ডেটা পুনরুদ্ধার করতে হয় তবে আমি ড্রুপাল থেকে মৃত্যুদন্ড কার্যকর করা কোডের মতো কোডটি কার্যকর করব। বিশেষত, ড্রুপাল 6 এর জন্য, আমি নিম্নলিখিত কোডটি কার্যকর করব।
বেনামে ব্যবহারকারীর জন্য ডেটা ডাটাবেসে ইতিমধ্যে উপস্থিত থাকলে, তবে ব্যবহারকারীর আইডি 0 নয়:
db_query("UPDATE {users} SET uid = uid - uid WHERE name = '%s'", '');যদি অনামী ব্যবহারকারীর জন্য ডেটা উপস্থিত না থাকে, এমনকি ভুল ব্যবহারকারী আইডি সহ:
db_query("INSERT INTO {users} (name, mail) VALUES('%s', '%s')", '', '');
db_query("UPDATE {users} SET uid = uid - uid WHERE name = '%s'", '');আপনি যদি অজ্ঞাত পরিচয় ব্যবহারকারীর ডেটা স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করতে চান তবে আপনি hook_cron()একটি কাস্টম মডিউল প্রয়োগ করতে এবং নীচের মত কোড প্রয়োগ করতে পারেন। (কোডটি দ্রুপাল for এর জন্য)
function mymodule_cron() {
$uid = db_result(db_query("SELECT uid FROM {users} WHERE name = '%s'", ''));
if ($uid === FALSE) {
// The data has not been found in the database; re-create the row.
db_query("INSERT INTO {users} (name, mail) VALUES('%s', '%s')", '', '');
}
db_query("UPDATE {users} SET uid = uid - uid WHERE name = '%s'", '');
}
আপনি যদি মডিউলটিকে কম ওজন দেন তবে এর বাস্তবায়ন hook_cron()অন্যান্য বাস্তবায়নের আগেই কার্যকর করা হবে এবং এটি এড়াতে পারে কারণ ডাটাবেসটিতে সারি অনুপস্থিত রয়েছে।
INSERT INTO users (uid, name, mail) VALUES(0, '', '')