php
  • mysql
  • database
  • 2017-04-01 103 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注入攻击风险。
    相关问题