मैं SQLite3 डेटाबेस से पूछताछ करने के लिए डीबीआई का उपयोग कर रहा हूं। मेरे पास क्या काम करता है, लेकिन यह कॉलम को क्रम में वापस नहीं करता है। उदाहरण:पर्ल में डीबीआई के साथ कॉलम नाम और पंक्ति डेटा कैसे प्राप्त कर सकता हूं?
Query: select col1, col2, col3, col4 from some_view;
Output:
col3, col2, col1, col4
3, 2, 1, 4
3, 2, 1, 4
3, 2, 1, 4
3, 2, 1, 4
...
(values and columns are just for illustration)
मुझे पता है क्योंकि मैं एक हैश उपयोग कर रहा हूँ यह हो रहा है, लेकिन और कैसे मैं स्तंभ नाम वापस मिलता है अगर मैं केवल एक सरणी का उपयोग करें? (मैं जरूरत उत्पादन सही क्रम में और स्तंभ नाम के साथ है, यही कारण है।)
col1, col2, col3, col4
1, 2, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 2, 3, 4
...
मैं: सभी मैं क्या करना चाहते हैं किसी भी मनमाना क्वेरी के लिए कुछ इस तरह मिलता है मैं बहुत अधिक पर्ल नौसिखिया हूं, लेकिन मैंने वास्तव में सोचा कि यह एक साधारण समस्या होगी। (मैंने रूबी और PHP में पहले यह किया है, लेकिन मुझे पर्ल दस्तावेज़ में जो कुछ भी दिख रहा है उसे ट्रैक करने में मुझे परेशानी हो रही है।)
यहां इस समय मेरे पास क्या है:
use Data::Dumper;
use DBI;
my $database_path = '~/path/to/db.sqlite3';
$database = DBI->connect(
"dbi:SQLite:dbname=$database_path",
"",
"",
{
RaiseError => 1,
AutoCommit => 0,
}
) or die "Couldn't connect to database: " . DBI->errstr;
my $result = $database->prepare('select col1, col2, col3, col4 from some_view;')
or die "Couldn't prepare query: " . $database->errstr;
$result->execute
or die "Couldn't execute query: " . $result->errstr;
###########################################################################################
# What goes here to print the fields that I requested in the query?
# It can be totally arbitrary or '*' -- "col1, col2, col3, col4" is just for illustration.
# I would expect it to be called something like $result->fields
###########################################################################################
while (my $row = $result->fetchrow_hashref) {
my $csv = join(',', values %$row);
print "$csv\n";
}
$result->finish;
$database->disconnect;
क्षमा करें, यकीन नहीं क्यों यह उतर गया मतदान किया। अगर आपको लगता है कि इसे बेहतर किया जा सकता है तो कृपया एक टिप्पणी छोड़ दें। –