我遇到以下代码的问题我正在尝试编写动态查询,该查询将独立于我的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>
答案 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;
}
试试这个功能 注意:如果某个字段是字符串,则应在该字段中添加单引号。