2012-02-29 11 views
6

मैं PHP में बाँध parametr साथ MySQLi पीडीओ में इस mysql क्वेरी को निष्पादित करने की जरूरत है:MySQLi के साथ MySQLi में bind_param के साथ रिकॉर्ड कैसे सम्मिलित करें?

mysql_query("INSERT INTO `posts` (post_name,publish_date) VALUES ($post_name,NOW()) ") 

मैं इस तरह स्क्रिप्ट का उपयोग, लेकिन इसे सही ढंग से PUBLISH_DATE सम्मिलित नहीं है।

$publish_date = 'NOW()'; 
$insert = $mysqli->prepare("INSERT INTO posts (post_name,publish_date) VALUES (?,?)"); 
$insert->bind_param("ss", $post_name $publish_date); 
$insert->execute(); 

यह publish_date स्तंभ इस तरह में रिकॉर्ड सम्मिलित करता है: 0000-00-00 00:00:00

मैं यह कैसे कर सकते हैं? अग्रिम में धन्यवाद।

पीएस: दिनांक कॉलम का प्रकार datatime है।

उत्तर

25

यह क्वेरी का पैरामीटर नहीं है, जिसमें आपको MySQL को कोई मान नहीं देना है।

$insert = $mysqli->prepare("INSERT INTO posts (post_name, publish_date) VALUES (?, NOW())"); 
+2

: कारण आप के साथ '0000-00-00 00 समाप्त कर रहे हैं: 00: 00' डाला कि आप है एक पहचानने योग्य डेटाटाइम मान के बजाय स्ट्रिंग ''अब()' डालने की कोशिश कर रहे हैं। MySQL स्ट्रिंग को डेटाटाइम मान पर ले जाता है, और जिस मान को चुनता है वह शून्य दिनांक है। – Hammerite

+0

लेकिन ... और bind_param में परिवर्तक bind_param में "अब()" की आपूर्ति करने के लिए? –

+0

@ पेड्रो, मैं आपके प्रश्न को समझ नहीं पा रहा हूं। – Hammerite

2

शायद आप तारीख फ़ंक्शन का उपयोग करने की कोशिश करनी चाहिए अब नहीं()

$publish_date =date("Y-m-d H:i:s"); 
$insert = $mysqli->prepare("INSERT INTO posts (post_name,publish_date) VALUES (?,?)"); 
$insert->bind_param("ss", $post_name $publish_date); 
$insert->execute(); 
इसके अतिरिक्त
+1

इस समाधान के साथ समस्या यह है कि यदि डेटाबेस और PHP एक ही सर्वर पर नहीं चलते हैं, तो घड़ियों सिंक में नहीं हो सकती हैं। इसका मतलब है कि अब() (जो डेटाबेस सर्वर से समय लेता है) और तिथि (जो php/webserver से समय लेती है) समान नहीं हैं। इस मुद्दे के कारण मैं कई समस्याओं में भाग गया। एक समाधान एनटीपी का उपयोग करके हर बार सिंक करना होगा। – theomega

+0

@ थियोमेगा ने उसको नहीं देखा था यदि डेटाबेस और php/webserver एनटीपी टाइम सिंक्रनाइज़ेशन स्क्रिप्ट का उपयोग कर विभिन्न सर्वरों पर थे, तो समस्या हल हो जाएगी – smilezjim

संबंधित मुद्दे