php
  • mysql
  • mysqli
  • 2016-07-20 56 views 0 likes 
    0

    嗨,我需要做的請求到mysql拿到哪裏申請名稱一些數據= $信 但變量$字母可能包含「 我的問題是這樣的我嘗試使用此:用繩子PHP查詢包含引號

    $letter = mysqli_real_escape_string($conn,strtolower($letter)); 
    $us = $conn->query("SELECT id FROM singers where trim(LOWER(name)) = '".$letter."'"); 
    

    我的問題是,如果在$封信是我的傳說,在執行這條線後,成爲I \'M傳奇,因此它不能在數據庫中找到,因爲在數據庫中它存儲爲我是傳奇 如何我可以解決這個問題並獲得正確的結果。

    echo $letter; 
         $letter = mysqli_real_escape_string($conn,strtolower($letter)); 
         echo $letter; 
    

    結果

    我是

    I \'米

    +4

    瞭解準備好的語句 – Jens

    +0

    您確定'$ letter'在數據庫中嗎?這是避免引號的正確方法。 – Andrew

    +0

    我不會騙你會破壞你的代碼。試試「select .... where name = $ letter」。應該運行良好 –

    回答

    1

    爲什麼你已經在你的column name

    "SELECT id FROM singers where trim(LOWER(name)) = '".$letter."'" //why trim and LOWER 
    
    使用

    trim

    使用這種

    "SELECT id FROM singers where name = '".$letter."'" 
    

    也可以嘗試這個喜歡

    $letter = mysqli_real_escape_string($conn,strtolower($letter)); 
    $sql = "SELECT id FROM singers where name = '".$letter."'"; 
    // echo $sql; die; print this and run in phpmyadmin to check 
    $us = $conn->query($sql); 
    if ($us !== false) { 
    echo 'done'; 
    } 
    else{ die('failed!' . mysqli_error($conn));} 
    
    +0

    因爲$信較低 ,問題是,‘我是傳奇’!=「I \」 M傳奇「 有沒有辦法逃脫」沒有添加\ – bakrim

    +0

    沒有多少錯誤。嘗試一次刪除 – user1234

    +0

    不工作 我認爲,因爲他找不到「什麼是'瓊斯先生' 它被存儲爲」What's Up'mr Jones「 我應該加\到所有字段 – bakrim

    0

    enter image description here

    enter image description here

    有在 添加\是問題

    字段和值之間的差異
    相關問題