2013-03-21 199 views
1

我一直在用不同的方式測試我的sql語句,但它不工作。我無法在sql語句中編寫我的變量和會話。如何在我的sql語句中使用變量和會話?

function onelike() 
{ 
    $_SESSION['admin_id'] 
    $resultLikeCheck = "SELECT FROM tbladminXshouts WHERE postId = $row['id'] AND admin_id = $_SESSION['admin_id']"; 
    $results = mysql_query($resultLikeCheck) or die(''); 

    if(mysql_num_rows($results) == 0) 
    { 
     echo (' 

       `<form action="" method="POST"> 
         <input type="hidden" name="id" value="'.$row['id'].'"/> 
         <input type = "submit" name="Gilla" value = "Gilla"/> 
        </form>` 

       '); 
    } 
} 

它有什麼問題?

+1

嘗試首先將會話變量保存在本地變量中...請請清理用戶輸入。 – Ryoku 2013-03-21 23:15:03

+0

@Ryoku謝謝,是否像這樣$ localVariabel = $ _SESSION ['admin_id'];?然後我在我的sql語句中使用$ localVariabel而不是$ _SESSION ['admin_id']? – 2013-03-21 23:17:09

回答

2
$resultLikeCheck = "SELECT FROM tbladminXshouts WHERE postId = $row['id'] AND admin_id ='{$_SESSION['admin_id']}'"; 

使用「{}」插入字符串內的變量。

+0

謝謝,這是一個很好的方式... – 2013-03-21 23:21:10

0

你可以試試這個。

$adminID= $_SESSION['admin_id']; 
$rowID= $row['id']; 
onelike($adminID,$rowID); 

    function onelike($adminID,$rowID) 
    { 


    $resultLikeCheck = "SELECT * FROM tbladminXshouts WHERE postId = '{$rowID}' AND admin_id = '{$adminID}'"; 

    $results = mysql_query($resultLikeCheck) or die(''); 

而且我推薦使用的,而不是mysql_

編輯mysqli_功能: 我覺得你的問題是你是不是通過你的變量到函數。 PHP中的函數有它們自己的局部變量,除非你發送它們,否則不能訪問變量之外的變量。
是的,@Sajjad Merchant是對的,將變量插入字符串以查詢的最佳方式是使用「{}」

+1

謝謝,這是一個真正的好方法來做到這一點,我會嘗試它。 – 2013-03-21 23:22:43

+1

SQL stament中的語法錯誤需要是SELECT * FROM ..... – 2013-03-21 23:23:55

相關問題