【问题标题】:Express query for SQLSQL 的快速查询
【发布时间】:2013-08-31 22:57:36
【问题描述】:

我在下面的快速代码部分动态尝试将表的名称传递给 SQL 查询

背景信息::

  • 我作为(键,值)传递的是字符串,它将是 sql数据库中的表名
  • 我为什么要根据动态动态选择表 客户要求

我面临的问题::

  • 显然我没有正确地处理 sql 查询
  • 如何解决这个问题

[ExpressCode]

app.get('/RestaurantDesc/:Key',function(request,response,next){

    var keyName=request.params.Key;
    var name_of_restaurants, RestaurantTimings;
    async.series( [
        // Get the first table contents
        function ( callback ) {
            connection.query('SELECT * FROM keyName', function(err, rows, fields)
                {
                        console.log('Connection result error '+err);
                        name_of_restaurants = rows;
                        callback();
                });
        },
        // Get the second table contents
        function ( callback ) {
        connection.query('SELECT * FROM RestaurantTimings', function(err, rows, fields)

            {
                    console.log('Connection result error '+err);
                    RestaurantTimings = rows;
                    callback();
            });
        }

   // Send the response
], function ( error, results ) {
    response.json({
        'restaurants' : name_of_restaurants,
        'RestaurantTimings' : RestaurantTimings
    });
} );
} );

【问题讨论】:

  • 我假设变量 keyname 旨在包含表的文本名称。如果这是正确的,那么 keyname 需要在字符串之外并连接到我认为的字符串上。
  • 是的,您的假设与我想告诉的内容 100% 正确......请您可以通过编辑我发布的代码将您的解决方案放入代码中......这将有助于像我这样的新手...谢谢!
  • 你用的是什么mysql驱动? This one?

标签: mysql sql express


【解决方案1】:

考虑keynameRestaurantTimings 作为表名。试试这个:-

app.get('/RestaurantDesc/:Key',function(request,response,next){

    var keyName=request.params.Key;
    var name_of_restaurants, RestaurantTimings;

    async.series( [
        // Get the first table contents
        function ( callback ) {
            connection.query('SELECT * FROM ', keyName, function(err, rows, fields)
                {
                        console.log('Connection result error '+err);
                        name_of_restaurants = rows;
                        callback();
                });
        },
        // Get the second table contents
        function ( callback ) {
        connection.query('SELECT * FROM ', RestaurantTimings, function(err, rows, fields)

            {
                    console.log('Connection result error '+err);
                    RestaurantTimings = rows;
                    callback();
            });
        }

   // Send the response
], function ( error, results ) {
    response.json({
        'restaurants' : name_of_restaurants,
        'RestaurantTimings' : RestaurantTimings
    });
} );
} );

【讨论】:

    猜你喜欢
    • 2022-11-29
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 2022-01-19
    • 2011-06-08
    • 2013-09-20
    相关资源
    最近更新 更多