একটি ক্ষেত্র থেকে 1 যোগ করুন

আমি কীভাবে 1 টি ক্যোয়ারীতে নিম্নলিখিত 2 টি প্রশ্ন চালু করব?

$sql    = "SELECT level FROM skills WHERE id = $id LIMIT 1;";
$result = $db->sql_query($sql);
$level  = (int) $db->sql_fetchfield('level');
$db->sql_freeresult($result);

++$level;

$sql    = "UPDATE skills SET level = $level WHERE id = $id;";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);

আমি এটি একটি phpBB মডেম ব্যবহার করছি কিন্তু gist হয় যে আমি স্তরের দখল, এটি যোগ এক তারপর আপডেট, এটি একটি প্রশ্ন হিসাবে এটি করতে পারে যদি এটি অনেক সহজ এবং দ্রুত হতে হবে বলে মনে হয়।

সম্পাদনা: $ id ইতিমধ্যেই একটি পূর্ণসংখ্যা হতে বাধ্য হয়েছে, এইভাবে এই মুহূর্তে কোনও পলায়নের প্রয়োজন নেই।

0
ro fr hi

7 উত্তর

$ sql = "আপডেট দক্ষতা SET level = level + 1 WHERE id = $ id";

আমি আশা করি আপনি সঠিকভাবে আপনার কোডে $ id $ স্যানিটাইটিং করছেন!

0
যোগ
বিশেষ করে কোট ছাড়াই কেউ এসকিউএল ইনজেকশন $ আইডি = "'নাল' এর সাথে শেষ উদ্ধৃতিটি থেকে বেরিয়ে আসতে পারবে না অথবা দক্ষতা থেকে মুছে ফেলতে পারবে না; হা হা
যোগ লেখক Josh Bedo, উৎস

এটা চেষ্টা কর

UPDATE skills SET level = level + 1 WHERE id = $id
0
যোগ

এই পথে:

UPDATE skills
SET level = level + 1
WHERE id = $id
0
যোগ

আমি এই জন্য downmodded পেতে?

$sql = "UPDATE skills SET level = level+1 WHERE id = $id";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);

Teifion এর নির্দিষ্ট ক্ষেত্রে, phpBB DDL তালিকাভুক্ত না বিশেষ ক্ষেত্র হিসাবে নুল হিসাবে, তাই নুল বৃদ্ধি না কোন বিপদ আছে

সাধারণ ক্ষেত্রে, আপনি শূন্য প্রতিনিধিত্ব করতে নল ব্যবহার করা উচিত নয়। ক্রমবর্ধমান শূন্য NULL এর একটি উত্তর দিতে হবে । আপনি যদি বিপথে চালিত বিকাশকারী হন, যিনি NULL = 0, কীবোর্ড থেকে দূরে যান এবং অন্য একটি শৃঙ্খলা খুঁজে পান, আপনি শুধু আমাদের বাকিদের জন্য জীবনের কঠিন করছেন অবশ্যই, এই কম্পিউটার শিল্প এবং আমরা কে বলছি আপনি ভুল করছেন? আপনি ভুল না হলে, ব্যবহার করুন

$sql = "UPDATE skills SET level = COALESCE(level,0)+1 WHERE id = $id";

... কিন্তু এর মুখোমুখি হওয়া যাক: আপনি ভুল হয়েছেন। যদি সবাই স্তর 0 এ শুরু হয় তবে আপনার DDL এর অন্তর্ভুক্ত হওয়া উচিত

level INT DEFAULT '0' NOT NULL

যদি তারা একটি রেকর্ড তৈরি প্রোগ্রামাররা এটি সেট করতে ভুলবেন না। যদি না সবাই স্তর 0 এ শুরু হয়, তাহলে DEFAULT কে বাদ দিন এবং সৃষ্টির একটি মান সরবরাহের জন্য প্রোগ্রামারকে বাধ্য করুন। যদি কিছু মানুষ মাত্রা অতিক্রম করে, যার জন্য একটি স্তর হচ্ছে একটি অর্থহীন জিনিস, তারপর তাদের স্তর এক যোগ সমানভাবে কোন অর্থ আছে। যে ক্ষেত্রে, DDL থেকে নোট নাল ড্রপ।

0
যোগ
আমি একটি সমস্যা আছে যেখানে 'স্তর' নাল হয়, এটি বৃদ্ধি হবে না।
যোগ লেখক MaurerPower, উৎস

ম্যাটঃ যেটা প্রশ্ন থেকে আটকাছে। এটি সম্পাদনা করা হয় নি, তাই আমি Markdown এ একটি বাগ যে বৈশিষ্ট্যাবলী কিন্তু, অদ্ভুতভাবে যথেষ্ট, আমি খেয়াল করেছি।

এছাড়াও: হ্যাঁ, mysql_escape_string() !

0
যোগ

কেমন:

UPDATE skills SET level = level + 1 WHERE id = $id;
0
যোগ

PDO এবং প্রস্তুত প্রশ্ন সঙ্গে:

$query = $db->prepare("UPDATE skills SET level = level + 1 WHERE id = :id")
$query->bindValue(":id", $id);
$result = $query->execute();
0
যোগ