php
  • string-concatenation
  • 2017-07-25 51 views 0 likes 
    0

    我試圖做一個登錄頁面在PHP中,我試圖構建這裏查詢:廣東話字符串插入MySQL查詢

    $q = 'SELECT * FROM users WHERE userid="'+$username+'"'; 
    

    當我贊同它與

    echo $q 
    

    我得到0。當我做

    $q = 'SELECT * FROM users WHERE userid="'+"test"+'"'; 
    

    我得到0。當我做

    $q = 'SELECT * FROM users WHERE userid="michael"'; 
    

    我得到被打印出來

    +0

    去像''花語法我句子和{$ keywords}'' – aldrin27

    +1

    '+'是用於PHP的數學。使用'.'您也可以使用此代碼開放SQL注入,以最好地參數化您的查詢。另外'userid'可能永遠不會等於'$ username'。 – chris85

    +0

    SQL注入,小心,userid的數據類型是什麼?它不是javascript –

    回答

    1

    使用我的字符串的預期結果的.進行連結,也不要忘了清理數據,以防止MySQL的注入。

    $user_id = 'test'; 
    $q = 'SELECT * FROM users WHERE userid="' . $user_id . '"'; 
    
    0

    嘗試使用PDO Prepared語句來防止SQL注入。

    $q = 'SELECT * FROM users WHERE userid = ?'; 
    $stmt = $dbh->prepare($q); 
    if ($stmt->execute(array($username))) { 
        while ($row = $stmt->fetch()) { 
        print_r($row); 
        } 
    } 
    

    http://php.net/manual/en/pdo.prepared-statements.php

    0

    就可以使用。

    $user_id = 'michael'; 
    $q = 'SELECT * FROM users WHERE userid="'.$user_id.'"'; 
    

    或用雙引號的表達和使用單引號的變量

    $user_id = 'michael'; 
    $q = "SELECT * FROM users WHERE userid='$user_id'"; 
    

    IM認爲,第二個選項是體積最小,最容易記住

    相關問題