यह संभवतः एक आसान काम है लेकिन मैं शौकिया हूं और चीजें सिर्फ मेरे लिए काम नहीं कर रही हैं।MySQL php: जांचें कि पंक्ति मौजूद है
मैं सिर्फ यह देखना चाहता हूं कि कोई पंक्ति मौजूद है या नहीं, जहां $ lectureName दिखाता है। यदि $ lecture के साथ कोई पंक्ति मौजूद है, तो कहीं भी, मैं चाहता हूं कि फ़ंक्शन "असाइन" वापस लौटाए, तो उसे "उपलब्ध" वापस नहीं करना चाहिए। मेरे पास यह है। मुझे यकीन है कि यह एक गड़बड़ है। कृपया मदद करे।
function checkLectureStatus($lectureName)
{
$con = connectvar();
mysql_select_db("mydatabase", $con);
$result = mysql_query("SELECT * FROM preditors_assigned WHERE lecture_name='$lectureName'");
while($row = mysql_fetch_array($result));
{
if (!$row[$lectureName] == $lectureName)
{
mysql_close($con);
return "Available";
}
else
{
mysql_close($con);
return "Assigned";
}
}
जब मैं ऐसा करता हूं तो सबकुछ वापस लौटाता है, भले ही इसे असाइन किया जाना चाहिए।
$lectureName = mysql_real_escape_string($lectureName); // SECURITY!
$result = mysql_query("SELECT 1 FROM preditors_assigned WHERE lecture_name='$lectureName' LIMIT 1");
if (mysql_fetch_row($result)) {
return 'Assigned';
} else {
return 'Available';
}
सरणियों और फ़ील्ड नाम के साथ गड़बड़ करने के लिए कोई ज़रूरत नहीं है: यदि एक पंक्ति मौजूद है
कृपया ऐसा क्वेरी लिखते नहीं है क्योंकि आप एसक्यूएल इंजेक्शन की समस्या है। इसका मतलब है कि एक हमलावर आसानी से आपके डेटाबेस (http://php.net/manual/de/security.database.sql-injection.php) में हेरफेर कर सकता है। इससे बचने के लिए कुछ उदाहरणों के लिए http://at2.php.net/manual/de/function.mysql-real-escape-string.php देखें। –
@Jasd जर्मन में पृष्ठ क्यों हैं? –
आह क्षमा करें, ऐसा लगता है कि मैंने गलत लिंक कॉपी किए हैं, बस यूआरएल के भीतर 'डी' के साथ 'डी' को प्रतिस्थापित करें। –