©
本文档使用
php.cn手册 发布
(PECL paradox >= 1.0.0)
px_get_schema — Returns the database schema
$pxdoc
[, int $mode
= 0
] )px_get_schema() returns the database schema.
pxdoc
Resource identifier of the paradox database as returned by px_new() .
mode
If the optional mode
is
PX_KEYTOLOWER
or
PX_KEYTOUPPER
the keys of the returned array
will be converted to lower
or upper case. If mode
is 0 or not passed at all,
then the key name will be identical to the field name.
Returns the schema of a database file as an associated array. The key name is equal to the field name. Each array element is itself an associated array containing the two fields type and size. type is one of the constants in table Constants for field types. size is the number of bytes this field consumes in the record. The total of all field sizes is equal to the record size as it can be retrieved with px-get-info() .
[#1] Mr Muddy [2007-08-14 01:14:03]
It's not especially pretty and there isn't any error trapping, so please don't use this on any sort of production data. This will display the schema of a paradox data source....
<?php
//we're expecting a filename in the post vars
if ($_POST['database_name'] != "") {
//Set up anything we are likely to need
$database_filename = "<path to your data file>".$_POST['database_name'];
echo "<p><b>Schema for ".$_POST['database_name']."</b></p>\n";
if(!$pxdoc = px_new()) {
DIE("Problem !");
}
$fp = fopen($database_filename, "r");
if(!px_open_fp($pxdoc, $fp)) {
DIE("Couldn't open database file");
}
else {
//output the database schema...
$stock_schema = px_get_schema($pxdoc);
if (is_array($stock_schema)) {
foreach ($stock_schema as $key=>$value) {
echo "<br><b>".$key."</b> - Type ".$value['type'];
}
}
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
}
else {
//show the form to get the filename
echo "<form action=\"show_schema.php\" method=\"post\">\n";
echo "<p>Data Source Name (include extension) : <input type=\"text\" size=\"10\" name=\"database_name\"></p>\n";
echo "<p><input type=\"submit\" value=\"Show Schema !\">\n";
echo "</form>\n";
}
?>