php
  • mysql
  • 2016-12-01 73 views 1 likes 
    1

    代碼示例報價:關於MySQL的查詢

    $query = "INSERT INTO $table SET 
        category  = '".$_POST['new_dish_category']."', 
        name_of_dish = '".$_POST["new_dish_name"]."',   
        discription = '".$_POST["new_dish_discription"]."', 
        weight  = '".$_POST["new_dish_weight"]."', 
        price  = '".$_POST["new_dish_price"]."'"; 
    

    任何人都可以解釋我爲什麼在這裏我們把引號喜歡它?我可以不瞭解其中的第一個和第二個,但第三個然後連接 - 我不明白。

    第二個問題:也許有更好的辦法?我只是一個開始,我的英語很差,所以... :)

    +0

    是的,是的,是的,有更好的方法!因爲這是SQL注入的廣泛開放。我不確定您是否使用[PDO](http://php.net/manual/en/pdo.prepared-statements.php)或[mysqli](http://php.net/manual/en /mysqli.quickstart.php)(請使用其中之一),但要查看準備好的語句和參數綁定。基本上,作爲一個字符串,你的變量進入你的列需要引用,但準備語句消除了這種需要。 – aynber

    +0

    在這個查詢字符串中,您將字符串的內容設置爲雙引號(「)之間的所有內容,這意味着單引號(')實際上位於字符串中,您希望sql的正確性是什麼。你生成的sql字符串將如下所示: INSERT INTO test_table SET category ='testcategory1',name_of_dish ='pizza margarita',...等等。 – Cashbee

    +0

    應該是''description'',並且weight和價格應該不需要''''它們應該是整數/小數字段 –

    回答

    0

    這很簡單。

    看一看這個

    name_of_dish = '" . $_POST['new_dish_name'] . "', 
    

    '設置爲mysql的解析器,所以MySQL將知道,'來之後插入的字符串。

    "完成php變量的字符串。但是你可以刪除它們,因爲函數和變量是由php解釋的,只要它們寫在""

    $variable_1 = "a test string"; // output: a test string 
    $variable_2 = "Test string with $variable_1"; // output: Test string with a test string 
    
    $variable_3 = 'a second test'; // output: a second test 
    $variable_4 = 'Test string with $variable_3'; // output: Test string with $variable_3 
    
    +0

    非常感謝大家! –

    相關問題