2017-04-21 50 views
-1
$raw_results = mysql_query("SELECT sno,name,email,phone,smpc FROM existing_sales_details 
    WHERE (`sno` LIKE '%".$query."%') OR(`name` LIKE '%".$query."%') OR (`email` LIKE '%".$query."%') OR (`phone` LIKE '%".$query."%') OR (`smpc` LIKE '%".$query."%') 
    UNION 
    SELECT sno,name,email,phone,smpc FROM sale_details 
    WHERE (`sno` LIKE '%".$query."%') OR(`name` LIKE '%".$query."%') OR (`email` LIKE '%".$query."%') OR (`phone` LIKE '%".$query."%') OR (`smpc` LIKE '%".$query."%') 
    UNION 
    SELECT sno,name,email,phone,smpc FROM uncharge 
    WHERE (`sno` LIKE '%".$query."%') OR(`name` LIKE '%".$query."%') OR (`email` LIKE '%".$query."%') OR (`phone` LIKE '%".$query."%') OR (`smpc` LIKE '%".$query."%')") 
    or die(mysql_error()); 

我有三個表,當我檢索這些數據我也想拿到桌子名字就知道這個數據屬於到這個表如何根據數據檢索表名稱請給我建議。我有三個表,當我檢索這些數據我也想表名太

+1

停止使用'mysql_ *'函數。自v5.5(2013年6月)開始,它們已被棄用,並從v7.0(2015年12月)開始刪除。請使用[** mysqli _ ***](https://secure.php.net/manual/en/book.mysqli.php)或[** PDO **](https://secure.php.net /manual/en/book.pdo.php)與[**準備語句**](https://secure.php.net/manual/en/pdo.prepare.php)和[**綁定參數** ](https://secure.php.net/manual/en/pdostatement.bindparam.php)。 –

+0

你是什麼意思?在執行查詢之前應該知道表名? – SaidbakR

+1

[Little Bobby](http://bobby-tables.com/)說*** [你的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can- I-防止-SQL注入式-PHP)***。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –

回答

2

什麼,你可以很容易做的是:

SELECT colum1, column2, 'tableName1' as tableName FROM tableName1 
UNION 
SELECT colum1, column2, 'tableName2' as tableName FROM tableName2 

您可以隨時添加一個字符串或數字爲您選擇一列。每行都是一樣的。

0

除了舊的mysql庫的問題,它實際上很容易返回表名。

由於您使用UNION,基本上3選擇你所要做的就是每年年底選擇 變化

SELECT sno,name,email,phone,smpc 

SELECT sno,name,email,phone,smpc,'XXXX' AS tablename 

而更換XXXX作爲表名每個查詢

相關問題