php
  • mysql
  • database
  • 2017-04-01 82 views 0 likes 
    0

    我想從數據庫中選擇一些變量,然後插入它們。但如何更改可能或idk做一些事情,因爲我試圖插入「VALUES('m.ID','md.ID')」他不認識,它不工作。php選擇變量cfrom數據庫

    $sql = "SELECT m.vardas, m.pavarde, m.ID, md.pavadinimas, md.ID FROM Mokinys m, Mokymodalykas md 
    where m.vardas='$mokiniovar' and m.pavarde='$mokiniopav' and md.pavadinimas='$dalykas'"; 
    
    $sql2 = "INSERT INTO Pazymiuregistras (mokinio_ID, dalyko_ID, pazymys, data) VALUES ('$m.ID', '$md.ID', '$pazymys', '$data');"; // in this place he dont recognize m.id and md.id 
    if ($conn->multi_query($sql2) === TRUE) { 
    echo "New records created successfully"; 
    } else{ 
    echo "Error"; 
    } 
    $conn->close(); 
    
    +0

    什麼是'$ m'? –

    +0

    我認爲它是從我使用的數據庫表變量 – LTUniger

    回答

    0

    使用單個語句insert . . . select。不要用循環做這個!

    INSERT INTO Pazymiuregistras (mokinio_ID, dalyko_ID, pazymys, data) 
        SELECT m.ID, md.ID, '$pazymys', '$data' 
        FROM Mokinys m CROSS JOIN 
          Mokymodalykas md 
        WHERE m.vardas = '$mokiniovar' AND 
          m.pavarde = '$mokiniopav' AND 
          md.pavadinimas = '$dalykas'; 
    

    另外,走出傾銷串的習慣轉換爲SQL語句。學習使用參數。這是很重要的原因有兩個:

    1. 把串入語句可能會導致意想不到的語法錯誤,偶爾難以發現漏洞。
    2. 生成的代碼存在SQL注入攻擊風險。
    相關問題