2013-06-05 81 views
-1

我想執行一個查詢,我保存在我的數據庫這樣執行保存的查詢:我想在數據庫

ID | NAME   | QUERY 
1 | show_names | "SELECT names.first, names.last FROM names;" 
2 | show_5_cities | "SELECT cities.city FROM city WHERE id = 4;" 

這可能嗎? 我在PHP有點noob,所以plz解釋如果可能。

+0

*爲什麼*你有一個想法在數據庫中存儲查詢? –

+0

@YourCommonSense將查詢存儲在數據庫中是創建用戶可定製報告系統的快速方法,前提是他們有自己想要運行的查詢。 – Dai

+1

看來你正處於某種強烈的幻想之下。 –

回答

0

如果我理解你正確,你的查詢保存在數據庫中的表中,你想執行這些。

問題分解下來:你有兩個任務做:

  1. 查詢數據庫中要運行的查詢。
  2. 執行該查詢。

這是一個有點元,但MEH :)

警告:在PHP中mysql_功能已被取消,可以在不法分子手中的危險。

<?php 

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { 
    die('Could not connect to mysql'); 
} 

if (!mysql_select_db('mysql_dbname', $link)) { 
    die('Could not select database'); 
} 

$name = "show_5_cities"; // or get the name from somewhere, e.g. $_GET. 
$name = mysql_real_escape_string($name); // sanitize, this is important! 
$sql = "SELECT `query` FROM `queries` WHERE `name` = '$name'"; // I should be using parameters here... 
$result = mysql_query($sql, $link); 

if (!$result) { 
    die("DB Error, could not query the database\n" . mysql_error();); 
} 

$query2 = mysql_fetch_array($result); 
// Improving the code here is an exercise for the reader. 
$result = mysql_query($query2[0]); 

?> 
+1

+1只是確保你可以相信正在進行的查詢這裏,在插入之前進行消毒。 – Orangepill

0

查詢表得到查詢,然後執行該查詢,並通過成果循環和輸出領域

<?php 

$link = mysqli_connect("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) 
{ 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$RequiredQuery = intval($_REQUEST['RequiredQuery']); 
$sql = "SELECT `QUERY` FROM QueryTable WHERE ID = $RequiredQuery"; 
$result = mysqli_query($link, $sql); 

if ($row = mysqli_fetch_assoc($result)) 
{ 
    $sql = "SELECT `QUERY` FROM QueryTable WHERE ID = $RequiredQuery"; 
    $result = mysqli_query($link, $row['QUERY']); 

    while ($row2 = mysqli_fetch_assoc($result)) 
    { 
     foreach($row2 AS $aField=>$aValue) 
     { 
      echo "$aField \t $aValue \r\n"; 
     } 
    } 
} 

?> 
0

只需打開表,並在像

變量獲得個人查詢
$data = mysql_query('SELECT * FROM <the Table that contains your Queries>'); 

while(($row = mysql_fetch_row($data)) != NULL) 
{ 
    $query = $row['Query']; 
    mysql_query($query); // The Query from the Table will be Executed Individually in a loop 

} 

如果要從表中執行單個查詢,則必須使用WHERE子句選擇查詢。