|
4 | 4 | require_once('init.php'); |
5 | 5 |
|
6 | 6 | $return = array(); |
7 | | - |
8 | | - $query = $dbh->prepare('SELECT review.sample |
9 | | - FROM '.$reviewhost['review_table'].' AS review |
10 | | - WHERE review.checksum = ? |
11 | | - GROUP BY review.checksum |
12 | | - '); |
13 | | - $query->execute(array($_REQUEST['checksum'])); |
14 | | - $reviewData = $query->fetch(PDO::FETCH_ASSOC); |
15 | 7 |
|
16 | | - $Query = new QueryRewrite($reviewData['sample']); |
| 8 | + $query = Database::find('review')->query_col('SELECT review.sample |
| 9 | + FROM '.Database::escapeField($reviewhost['review_table']).' AS review |
| 10 | + WHERE review.checksum = ? |
| 11 | + GROUP BY review.checksum', |
| 12 | + $_REQUEST['checksum'] |
| 13 | + ); |
| 14 | + |
| 15 | + $Query = new QueryRewrite($query); |
17 | 16 | $sample = $Query->asExtendedExplain(); |
18 | 17 |
|
19 | 18 | if (is_null($sample)) { |
|
22 | 21 | else { |
23 | 22 | list($label, $database) = explode('.', $_REQUEST['explainDb']); |
24 | 23 | $host = $explainhosts[$label]; |
25 | | - $ebh = new PDO($host['dsn'], $host['user'], $host['password']); |
26 | | - |
27 | | - $query = $ebh->prepare("USE $database"); |
28 | | - $query->execute(); |
| 24 | + Database::connect(null, $host['user'], $host['password'], null, null, 'pdo', array('dsn' => $host['dsn']), $label); |
| 25 | + Database::find($label)->query('USE '.Database::escapeField($database)); |
29 | 26 |
|
30 | | - $query = $ebh->prepare($sample); |
31 | | - $query->execute(); |
32 | | - while ($row = $query->fetch(PDO::FETCH_ASSOC)) { |
| 27 | + Database::find($label)->disable_fatal_errors(); |
| 28 | + $query = Database::find($label)->query($sample); |
| 29 | + Database::find($label)->enable_fatal_errors(); |
| 30 | + |
| 31 | + while ($row = $query->fetch_assoc()) { |
33 | 32 | $row['possible_keys'] = str_replace(',', ', ', $row['possible_keys']); |
34 | 33 | $row['ref'] = str_replace(',', ', ', $row['ref']); |
35 | 34 | $row['Extra'] = str_replace(array('Using ', ';'), array('', ', '), $row['Extra']); |
|
41 | 40 |
|
42 | 41 | $return['Explain'][] = $row; |
43 | 42 | } |
44 | | - $query->closeCursor(); |
45 | | - $query = $ebh->prepare('SHOW WARNINGS'); |
46 | | - $query->execute(); |
47 | | - while ($row = $query->fetch(PDO::FETCH_ASSOC)) { |
| 43 | + $query = Database::find($label)->query('SHOW WARNINGS'); |
| 44 | + while ($row = $query->fetch_assoc()) { |
48 | 45 | if ($row['Code'] == 1003) |
49 | 46 | $return['Query'] = str_replace(',', ', ', $row['Message']); |
50 | 47 | else |
51 | 48 | $return['Warnings'][] = $row; |
52 | 49 | } |
53 | | - $query->closeCursor(); |
54 | 50 |
|
55 | 51 | if (array_key_exists('Query', $return)) { |
56 | 52 | $return['Query'] = preg_replace("/`([-_a-zA-Z0-9]+)`\.`([-_a-zA-Z0-9]+)`\.`([-_a-zA-Z0-9]+)`/U", |
|
0 commit comments