2017-04-21 52 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作为表名每个查询

相关问题