  |
1 | 1 | | <?php |
| |
2 | 2 | | /* |
  |
3 | | - | $Id: mysql.php 151 2005-08-02 14:33:25Z mattice $ |
| |
| 3 | + | $Id: mysql.php 368 2005-12-22 16:27:23Z hpdl $ |
|
4 | 4 | | |
| |
5 | 5 | | osCommerce, Open Source E-Commerce Solutions |
| |
6 | 6 | | http://www.oscommerce.com |
| |
|
|
 |
… |
|
19 | 19 | | class osC_Database_mysql extends osC_Database { |
| |
20 | 20 | | var $sql_parse_string = 'addslashes', |
| |
21 | 21 | | $sql_parse_string_with_connection_handler = false, |
  |
22 | | - | $use_transactions = false; |
| |
| 22 | + | $use_transactions = false, |
| |
| 23 | + | $use_fulltext = false, |
| |
| 24 | + | $use_fulltext_boolean = false; |
|
23 | 25 | | |
| |
24 | 26 | | function osC_Database_mysql($server, $username, $password) { |
| |
25 | 27 | | $this->server = $server; |
| |
|
|
 |
… |
|
125 | 127 | | } |
| |
126 | 128 | | |
| |
127 | 129 | | if ($resource !== false) { |
  |
| 130 | + | $this->error = false; |
| |
| 131 | + | $this->error_number = null; |
| |
| 132 | + | $this->error_query = null; |
| |
| 133 | + | |
|
128 | 134 | | return $resource; |
| |
129 | 135 | | } else { |
  |
130 | | - | $this->setError(mysql_error($this->link), mysql_errno($this->link)); |
| |
| 136 | + | $this->setError(mysql_error($this->link), mysql_errno($this->link), $query); |
|
131 | 137 | | |
| |
132 | 138 | | return false; |
| |
133 | 139 | | } |
| |
|
|
 |
… |
|
222 | 228 | | return $sql_query . ' limit ' . $from . ', ' . $maximum_rows; |
| |
223 | 229 | | } |
| |
224 | 230 | | |
  |
225 | | - | function batchSize($sql_query, $select_field = '*') { |
| |
| 231 | + | function getBatchSize($sql_query, $select_field = '*') { |
|
226 | 232 | | if (strpos($sql_query, 'SQL_CALC_FOUND_ROWS') !== false) { |
| |
227 | 233 | | $bb = $this->query('select found_rows() as total'); |
| |
228 | 234 | | } else { |
| |
|
|
 |
… |
|
254 | 260 | | |
| |
255 | 261 | | return $bb->value('total'); |
| |
256 | 262 | | } |
  |
| 263 | + | |
| |
| 264 | + | function prepareSearch($columns) { |
| |
| 265 | + | if ($this->use_fulltext === true) { |
| |
| 266 | + | return 'match (' . implode(', ', $columns) . ') against (:keywords' . (($this->use_fulltext_boolean === true) ? ' in boolean mode' : '') . ')'; |
| |
| 267 | + | } else { |
| |
| 268 | + | $search_sql = '('; |
| |
| 269 | + | |
| |
| 270 | + | foreach ($columns as $column) { |
| |
| 271 | + | $search_sql .= $column . ' like :keyword or '; |
| |
| 272 | + | } |
| |
| 273 | + | |
| |
| 274 | + | $search_sql = substr($search_sql, 0, -4) . ')'; |
| |
| 275 | + | |
| |
| 276 | + | return $search_sql; |
| |
| 277 | + | } |
| |
| 278 | + | } |
  |
257 | 279 | | } |
| |
258 | 280 | | ?> |