Commit 52dc50c4 authored by Alex Ne's avatar Alex Ne

Баг на сложных запросах

parent f5f54b54
<?php <?php
namespace X\Database\Driver; namespace X\Database\Driver;
use \X\ETrace\System as ESys; use X\ETrace\System as ESys;
class PDOStatement { class PDOStatement {
/** /**
......
...@@ -77,9 +77,8 @@ class PDOWhereConstructor { ...@@ -77,9 +77,8 @@ class PDOWhereConstructor {
/** /**
* @param $data * @param $data
*/ */
private function build_where_string($data, $inner_level = 0, $operator = "AND") { private function build_where_string($data, $inner_level = 0, $operator = "AND", $key_index = 0) {
$SQL_Fragment_Items = ""; $SQL_Fragment_Items = "";
$key_index = 0;
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
$item_info = $this->check_data_item($key, $value, $inner_level, $operator); $item_info = $this->check_data_item($key, $value, $inner_level, $operator);
if ($item_info["type"] == "column") { if ($item_info["type"] == "column") {
...@@ -99,7 +98,7 @@ class PDOWhereConstructor { ...@@ -99,7 +98,7 @@ class PDOWhereConstructor {
$SQL_Fragment_Items[] = "`{$item_info["name"]}` {$item_info["operator"]} {$data_key}"; $SQL_Fragment_Items[] = "`{$item_info["name"]}` {$item_info["operator"]} {$data_key}";
} }
} else { } else {
$level_data = $this->build_where_string($value, ($inner_level + 1), $item_info["operator"]); $level_data = $this->build_where_string($value, ($inner_level + 1), $item_info["operator"], ++$key_index);
$SQL_Fragment_Items[] = "({$level_data})"; $SQL_Fragment_Items[] = "({$level_data})";
} }
$key_index++; $key_index++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment