本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何编写独立于 HTML 表单的动态查询

发布于2023-12-27 22:24     阅读(351)     评论(0)     点赞(17)     收藏(2)


我对以下代码有问题,我正在尝试编写独立于我的 html 表单的动态查询。就像我不想在查询中的每个字段名称中写入名称一样,我想让它动态化,这就是为什么使用以下方法,但问题就在该代码下面的 foreach 代码块之后

任何其他最好的方法请指导我,我将不胜感激。

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

结果:

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

而我想要这样的结果

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

HTML 表单

<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>

代码:

$record['patient_name'] = $_POST['patient_name'];
$record['patient_address']=$_POST['patient_address'];
$record['patient_pass']=$_POST['patient_pass'];
$record['patient_cell']=$_POST['patient_cell'];

$dbname= new Db();

$dbname->Add($record);

功能

 public function Add($record) {

   $var= $record;       
   $sql.= "INSERT INTO Patient";

    foreach ($var as $key => $value) {

         $key = "{$key},";
        var_dump($key);

       $value = "{$value},";
        var_dump($value);

    }
    $sql.="(".substr($key,0,-1).") values (".substr($value,0,-1).")";

解决方案


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;
}

尝试这个函数注意:如果某个字段是字符串,您应该在该字段中添加单引号。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/550915/7fbd83d5aa780257a6ba/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)