test-named-paceholders.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var common = require('../../common');
  2. var connection = common.createConnection();
  3. var assert = require('assert');
  4. connection.query([
  5. 'CREATE TEMPORARY TABLE `test_table` (',
  6. '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,',
  7. '`num1` int(15),',
  8. '`num2` int(15),',
  9. 'PRIMARY KEY (`id`)',
  10. ') ENGINE=InnoDB DEFAULT CHARSET=utf8'
  11. ].join('\n'));
  12. connection.query('insert into test_table(num1,num2) values(?, 3)', [1]);
  13. connection.query('insert into test_table(num1,num2) values(3-?, -10)', [5]);
  14. connection.query('insert into test_table(num1,num2) values(4+?, 4000000-?)', [-5, 8000000]);
  15. connection.query('insert into test_table(num1,num2) values(?, ?)', [-5, 8000000]);
  16. connection.config.namedPlaceholders = true;
  17. var cmd = connection.execute('SELECT * from test_table where num1 < :numParam and num2 > :lParam', {lParam: 100, numParam: 2}, function(err, rows, fields) {
  18. if (err) throw err;
  19. assert.deepEqual(rows, [ { id: 4, num1: -5, num2: 8000000 } ]);
  20. });
  21. assert.equal(cmd.sql, 'SELECT * from test_table where num1 < ? and num2 > ?');
  22. assert.deepEqual(cmd.values, [2, 100]);
  23. connection.execute('SELECT :a + :a as sum', {a: 2}, function(err, rows, fields) {
  24. if (err) throw err;
  25. assert.deepEqual(rows, [{"sum":4}]);
  26. });
  27. var qCmd = connection.query('SELECT * from test_table where num1 < :numParam and num2 > :lParam', {lParam: 100, numParam: 2}, function(err, rows, fields) {
  28. if (err) throw err;
  29. assert.deepEqual(rows, [ { id: 4, num1: -5, num2: 8000000 } ]);
  30. });
  31. assert.equal(qCmd.sql, 'SELECT * from test_table where num1 < 2 and num2 > 100');
  32. assert.equal(typeof qCmd.values, 'undefined');
  33. connection.query('SELECT :a + :a as sum', {a: 2}, function(err, rows, fields) {
  34. if (err) throw err;
  35. assert.deepEqual(rows, [{"sum":4}]);
  36. });
  37. var sql = connection.format('SELECT * from test_table where num1 < :numParam and num2 > :lParam', {lParam: 100, numParam: 2});
  38. assert.equal(sql, 'SELECT * from test_table where num1 < 2 and num2 > 100');
  39. connection.end();