मैं प्लगइन विकास शुरू कर रहा हूँ और Wordpress कोडेक्स साइटों पर ट्यूटोरियल का पालन किया है। अब मैं फँस गया हूँ - मैं एक डेटाबेस "wp_imlisteningto" कहा जाता है, जहां wp_
का उपयोग कर सम्मिलित किया गया था है:सम्मिलित करना डेटा wpdb
$table_name = $wpdb->prefix . "imlisteningto";
जब प्लगइन सक्रिय है।
डेटाबेस में ही तीन कॉलम, की स्थापना की है जब प्लगइन सक्रिय है है:
$sql = "CREATE TABLE $table_name (
id mediumint(9) AUTO_INCREMENT,
album VARCHAR(50),
artist VARCHAR(50),
PRIMARY KEY (id)
);";
मैं एक php रूप से इस डेटाबेस में (एक नई पंक्ति बनाने के द्वारा) डेटा सम्मिलित करने के लिए कोशिश कर रहा हूँ।
Wordpress व्यवस्थापक के भीतर, मैं जो बहुत ही सरल रूप है एक नया पृष्ठ बनाने:
<form action="/wp-content/plugins/listeningto/formhtml.php" method="post">
Album: <input type="text" name="album" />
Artist: <input type="text" name="artist" />
<input type="submit">
</form>
कौन सा रूप में आप कॉल formhtml.php
देख सकते हैं, जो है:
<?php
global $wpdb;
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']), array('$s', '$s'));
?>
जब मैं प्रस्तुत प्रपत्र, मैं एक Error 500.0
जब IIS7.0
पर Worpdress में प्लगइन चलाने के लिए, और एक "Page Not Found"
जब एक और वेब सर्वर जो apache
चलाता है पर चल रहा है।
अगर मैं formhtml.php
बदलें:
<?php
echo $_POST['album'];
echo $_POST['artist'];
?>
वर्क्स ठीक - मैं एल्बम और कलाकार है कि मैं फार्म में डाल मिलता है। स्पष्ट रूप से डेटाबेस में डेटा (एक नई पंक्ति में) डालने पर मैं कुछ गलत कर रहा हूं।
कि क्या हो सकता है के रूप में किसी भी विचार?
अद्यतन
ठीक है, यदि ऐसा है तो मैं इस के साथ formhtml.php
अद्यतन:
<?php
require_once('../../../wp-config.php');
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']), array('$s', '$s'));
?>
मैं अब एक त्रुटि संदेश मिलता है, लेकिन डेटा अभी भी डेटाबेस में डाल नहीं मिलता है।
अद्यतन 2
यह मेरे लिए काम किया:
<?php
require_once('../../../wp-config.php');
global $wpdb;
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']));
?>
के रूप में किया था यह:
<?php
require_once('../../../wp-load.php');
global $wpdb;
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert($table_name, array('album' => $_POST['album'], 'artist' => $_POST['artist']));
?>
तो, किसी कारण से $wpdb
काम कर रहा था जब तक कि मैं या तो आवश्यक wp-config
या wp-load.php
। यदि wp-load.php
, $wpdb
को मूल्य मिलते हैं और सब ठीक है।
requ_once (ABSPATH। 'Wp-settings.php'); साथ ही काम करना चाहिए। ABSPATH को परिभाषित किया गया है @ wp-load.php – enam