2012-08-12 153 views
0

我有,這並不SQL語句似乎工作,我花了一個多小時,詢問如何展示一下語句如下例子:如何打印SQL語句?

$result = mysql_query("SELECT * FROM myTable WHERE id=$my_id AND status=$active"); 

現在我需要做的就是查看的內容實際SQL傳遞,所以我想象它看起來像這樣:

SELECT * FROM myTable WHERE id=2 AND status=4 

我知道這可能是超級簡單,但即時通訊的搜索沒有帶回答案的關鍵詞,我已經試過print_recho $resultmysql_fetch_array等,它並沒有真正得到我需要的東西,有人能讓我擺脫痛苦和痛苦我怎麼能回到我生命中的那個小時,我只是被浪費了?

+0

'echo「SELECT * FROM myTable WHERE id = $ my_id AND status = $ active」'? – 2012-08-12 12:54:07

+3

**警告**您的代碼可能容易受到sql注入攻擊 – 2012-08-12 12:54:49

+3

正如[介紹](http://www.php.net/manual/en/intro.mysql.php)中的PHP手冊章節所述'mysql_ *'函數:*不推薦使用此擴展來編寫新代碼。相反,無論是[mysqli](http://www.php.net/manual/en/book.mysqli.php)還是[PDO_MySQL](http://www.php.net/manual/en/ref.pdo應該使用-mysql.php)擴展名。另請參閱[MySQL API概述](http://www.php.net/manual/en/mysqlinfo.api.choosing.php)以獲取進一步幫助,以便選擇MySQL API。 – eggyal 2012-08-12 13:03:08

回答

1

只是回聲它。

echo "SELECT * FROM myTable WHERE id=$my_id AND status=$active"; 
2
$sql = 'SELECT * FROM myTable WHERE id='.is_int($my_id).' AND status='.is_int($active); 
$result = mysql_query($sql); 
echo $sql; 
+0

*可能會引入sql注入攻擊。 – 2012-08-12 12:56:11

+0

是真的!我修好了! =) – 2012-08-12 12:57:47

+0

仍然可能無法正常工作。 – 2012-08-12 13:00:25

0
 
$sql = 'SELECT * FROM myTable WHERE id='.mysqli_escape_string($my_id).' AND status='.mysqli_escape_string($active); 
$result = mysqli_query($sql) or die mysqli_error()." Query:".$sql; 

使用mysqli而不是mysql因爲mysql已被棄用Link