如何编写与HTML表单无关的动态查询

时间:2017-01-04 08:08:28

标签: php mysql

我遇到以下代码的问题我正在尝试编写动态查询,该查询将独立于我的html表单。就像我不想在我的查询中写出每个字段名称的名称我想让它变得动态,这就是为什么使用下面的方法,但问题是在正好在下面的代码块之后

任何其他最好的方式都会引导我,我们将非常感激。

current_user

结果:

current_user

而我想要这样的结果

foreach(){
 }
sql.="";
problem is here this sqli like contains only the last key and values not all the keys and values

HTML表单

 INSERT INTO Patient(patient_cell) values (033480779)';

代码:

 INSERT INTO   Patient(patient_name,patient_address,patient_pass,patient_cell) values (Saba,Daska,12345,033480779)';

功能

<form method="post" action="Patient_data.php">
        <label>Patient name:</label>
        <input type="text" name="patient_name" placeholder="Patient name">
        <br>
        <label>Patient Address:</label>
        <input type="text" name="patient_address" placeholder="Address">
        <br>
        <label>Patient's Password:</label>
        <input type="text" name="patient_pass" placeholder="Password">
        <br>
        <label>Patient Cell:</label>
        <input type="text" name="patient_cell" placeholder="Enter cell    no.">
        <br>
        <input type="submit" value="Create Record" name="Create">
    </form>

1 个答案:

答案 0 :(得分:0)

function Add($record) {

   $var= $record;       
   $sql.= "INSERT INTO Patient ([%keys%]) values ([%vals%])";

   $keys = "";
   $vals = "";

   foreach ($var as $key => $value) {
        if (!empty($keys)) {
            $keys .= ",";
        }
        $keys .= $key;

        if (!empty($vals)) {
            $vals .= ",";
        }
        $vals .= $value;

    }

    $sql = str_replace("[%keys%]", $keys, $sql);
    $sql = str_replace("[%vals%]", $vals, $sql);

    return $sql;
}

试试这个功能 注意:如果某个字段是字符串,则应在该字段中添加单引号。