php
  • mysql
  • sql-update
  • 2012-03-20 49 views 0 likes 
    0

    我有這個更新的空語句:的MySQL更新查詢返回的查詢

    mysql_query ("UPDATE loan SET loan_reff_id='$_POST[loan_reff_id]', 
    commit_date='$_POST[commit_date]',app_loan_type='Tertiary Loan', 
    app_ln_amnt='$_POST[app_ln_amnt]', institution_name='$_POST[institution_name]', 
    app_course='$_POST[app_course]',course_length='$_POST[course_length]', 
    course_cost='$_POST[course_cost]', app_trm_pymnt='$_POST[app_trm_pymnt]', 
    app_intrst_rate=3 
    WHERE app_file_id='$_POST[app_file_id]'"); 
    

    但文我運行它說,查詢空查詢,你怎麼想可能是問題 進出口使用MySQL和PHP

    +3

    誰說,「查詢空」? – user1027167 2012-03-20 13:03:29

    +0

    @MarcusAdams請舉個小例子?所以你說:(例)commit_date ='$ _ POST [commit_date]'..應該是? – dames 2012-03-20 13:05:14

    +0

    @ user1027167 mysql發送錯誤說:錯誤:查詢是空的 – dames 2012-03-20 13:07:05

    回答

    1

    這一個不是空的。
    您從其他查詢中收到此類錯誤。

    根據這一條,使之清醒起碼,

    foreach($_POST as $key => $value) { 
        $_POST[$key] = mysql_real_escape_string($value); 
    } 
    $sql = "UPDATE loan SET loan_reff_id='$_POST[loan_reff_id]', 
    commit_date='$_POST[commit_date]',app_loan_type='Tertiary Loan', 
    app_ln_amnt='$_POST[app_ln_amnt]', institution_name='$_POST[institution_name]', 
    app_course='$_POST[app_course]',course_length='$_POST[course_length]', 
    course_cost='$_POST[course_cost]', app_trm_pymnt='$_POST[app_trm_pymnt]', 
    app_intrst_rate=3 
    WHERE app_file_id='$_POST[app_file_id]'"; 
    
    mysql_query($sql) or trigger_error(mysql_error()." in ".$sql); 
    
    +0

    對於mysql_error()和轉義+1。 – 2012-03-20 13:15:45

    0

    您不應在查詢中直接使用$ _POST值,否則會冒SQL注入的風險,請嘗試使用PDO。 關於空查詢,您必須對簡單/雙引號和串聯有問題。 最後,你確定你沒有違反你桌子上的任何限制嗎? NOT NULL等...

    +0

    可以給你一個關於PDO的小例子,或者推薦一個鏈接,你的意思是簡單/雙引號。現在我已經違反了任何表限制 – dames 2012-03-20 13:14:40

    +0

    <?php $ req = $ bdd-> prepare('UPDATE load SET loan_reff_id =:reff_id,commit_date =:commit_date WHERE app_file_id =:app_file_id'); $ req->執行(陣列( \t 'reff_id'=> $$ reffId, \t 'commit_date'=> $ commitDate, \t 'app_file_id'=> $ appFileId \t)); ?> PDO將爲您轉義字符串。 你需要在你的php.ini中激活它。 – c4k 2012-03-20 13:38:52

    相關問題