Этот вопрос старый, но я нашел способ поиска заданного запроса его имена полей динамическим способом (не обязательно только поля таблицы). И поскольку люди продолжают указывать это как ответ на эту заданную задачу в других связанных вопросах, я разделяю то, как я нашел, что это можно сделать, используя советы Гевина Симпсона:
//Function to generate a HTML table from a SQL query
function myTable($obConn,$sql)
{
$rsResult = mysqli_query($obConn, $sql) or die(mysqli_error($obConn));
if(mysqli_num_rows($rsResult)>0)
{
//We start with header. >>>Here we retrieve the field names<<<
echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tr align=\"center\" bgcolor=\"#CCCCCC\">";
$i = 0;
while ($i < mysqli_num_fields($rsResult)){
$field = mysqli_fetch_field_direct($rsResult, $i);
$fieldName=$field->name;
echo "<td><strong>$fieldName</strong></td>";
$i = $i + 1;
}
echo "</tr>";
//>>>Field names retrieved<<<
//We dump info
$bolWhite=true;
while ($row = mysqli_fetch_assoc($rsResult)) {
echo $bolWhite ? "<tr bgcolor=\"#CCCCCC\">" : "<tr bgcolor=\"#FFF\">";
$bolWhite=!$bolWhite;
foreach($row as $data) {
echo "<td>$data</td>";
}
echo "</tr>";
}
echo "</table>";
}
}
Это может быть легко moded, чтобы вставить имена полей в массив.
С помощью простого: $sql="SELECT * FROM myTable LIMIT 1"
может предоставить вам поля любой таблицы, без необходимости использовать SHOW COLUMNS
или любой дополнительный php-модуль, если необходимо (удаление часть дампа данных).
Надеюсь, это поможет кому-то еще.
У меня такая же проблема, и я решил ее с помощью промежуточного программного обеспечения - посмотрите здесь:
http://gehling.dk/2010 / 02 / how-to-rails-routing-case-indensitive /
Примечание. Это применимо только для Rails 2.3+
Маршруты в Rails чувствительны к регистру, потому что URL-адреса чувствительны к регистру. Из W3C :
URL-адреса, как правило, чувствительны к регистру (за исключением имен компьютеров). Могут быть URL-адреса или части URL-адресов, { {1}}, где регистр не имеет значения, но определить их может быть непросто. Пользователи всегда должны учитывать, что URL-адреса чувствительны к регистру.
Ну, вы могли бы попробовать другой подход. Сделайте преобразование корпуса на стороне сервера и отправьте все на рельсы вниз.
Я думаю, вы можете добиться этого с помощью mod_rewrite или mod_spelling.
Иногда вам нужно пройти тестирование на нескольких версиях, или вам может понадобиться 2005 год для одной вещи, а 2008 год для другой.
Иногда вы поддерживаете несколько различных приложений, некоторые из которых находятся в одном, а некоторые - в другом, и вы еще не обновили все. Иногда выполняется обновление, и во время модернизации необходимо протестировать обе версии. Иногда вы поддерживаете несколько различных клиентов, некоторые на одной версии и некоторые на другой. Иногда требуется обновить внутренние приложения, но используется пакет программного обеспечения, сертифицированный только на более старой версии.
Есть много причин.
-121--4907639-Это может быть проще, но это работает:
--CREATE TABLE temptest
--(
-- date1 DATETIME,
-- stat nvarchar(10)
--)
--INSERT INTO temptest
--VALUES
--('2009-01-01 12:00:00','OK'),
--('2009-01-01 12:03:00','FAILED'),
--('2009-01-01 12:04:00','OK'),
--('2009-01-01 12:06:20','OK'),
--('2009-01-01 12:07:35','FAILED'),
--('2009-01-01 12:07:40','FAILED'),
--('2009-01-01 12:20:40','FAILED'),
--('2009-01-01 12:25:40','OK')
SELECT
stat,
COUNT(1),
YEAR(date1),
MONTH(date1),
DAY(date1),
DATEPART(hh,date1),
ROUND(DATEPART(MINUTE,date1)/10,0)
FROM temptest
GROUP BY stat, YEAR(date1), MONTH(date1), DAY(date1), DATEPART(hh,date1), ROUND(DATEPART(MINUTE,date1)/10,0)
-121--4055746- Хотя URL-адреса чувствительны к регистру, если вы хотите сделать ваши маршруты без регистра, есть грязный взлом, который вы можете сделать.
На application_controller.rb месте:
rescue_from ActionController::RoutingError do |exception|
redirect_to request.url.downcase
end
Но на самом деле не делайте этого. Создается цикл перенаправления для любых несуществующих маршрутов. Вы действительно должны проанализировать request.request_uri в его компоненты, опустить их и использовать их для создания законного маршрута, на который вы перенаправляете. Как я уже говорил, это грязный взлом. Тем не менее, я думаю, что это лучше, чем сделать вашу карту маршрута уродливой и халтурной.
просто подправьте его, чтобы он по умолчанию понижал регистр. простой пример:
module ActionController
module Caching
module Pages
def cache_page(content = nil, options = nil)
return unless perform_caching && caching_allowed
path = case options
when Hash
url_for(options.merge(:only_path => true, :skip_relative_url_root => true, :format => params[:format]))
when String
options
else
request.path
end
path = path.downcase
self.class.cache_page(content || response.body, path)
end
end
end
end