Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL将值插入错误的列_Php_Mysql - Fatal编程技术网

Php MySQL将值插入错误的列

Php MySQL将值插入错误的列,php,mysql,Php,Mysql,问题 对于一个php网站,我有一个表单来收集信息,然后将这些信息插入MySQL数据库,但是有三个列插入了错误的值。其余的都按正确的顺序排列 通过MySQL事务作为php变量插入的值 谢谢你抽出时间 代码: <?php function registerPatient($ptUsername, $ptPassword, $ptFirstName, $ptLastName, $ptSalutation, $ptEmail, $ptDOB, $ptPostCode, $ptHouseNo,

问题

对于一个php网站,我有一个表单来收集信息,然后将这些信息插入MySQL数据库,但是有三个列插入了错误的值。其余的都按正确的顺序排列

通过MySQL事务作为php变量插入的值

谢谢你抽出时间

代码:

 <?php
function registerPatient($ptUsername, $ptPassword, $ptFirstName, $ptLastName, $ptSalutation, $ptEmail, $ptDOB, $ptPostCode, $ptHouseNo, $ptTelNo, $link)
{
    $accType = "Patient";
    $dtID = $_COOKIE["ID"];
    $errors = "";
    $SQL_patientInsert =

        "START TRANSACTION;

        INSERT INTO accDetails (`username`, `hashPassword`, `accType`)
        VALUES ('" . $ptUsername . "',
                '" . $ptPassword . "',
                '" . $accType . "');


        INSERT INTO ptProfile (`firstName`, `lastName`, `salutation`, `email`, `DOB`, `postCode`, `houseNo`, `telephoneNo`, `dtID`, `ptID`)
        VALUES ('" . $ptFirstName . "',
                '" . $ptLastName . "',
                '" . $ptSalutation . "',
                '" . $ptEmail . "',
                '" . $ptDOB . "',
                '" . $ptPostCode . "',
                '" . $ptHouseNo . "',
                '" . $ptTelNo . "',
                '" . $dtID . "',
                LAST_INSERT_ID());
        COMMIT;";

        if (mysqli_multi_query($link, $SQL_patientInsert)) {
            $errors .= "";
        } else {
            $errors .= "MYSQL Error: ". mysqli_error($link);
        }


        return $errors;

    }

?>
表格结构


我想你只是把你的变量弄混了。你看过表格了吗?在构建查询之前,请尝试打印出所有变量,并检查它们是否正确对应。

我认为您只是在某个地方混淆了变量。你看过表格了吗?在生成查询之前,请尝试打印出所有变量,并检查它们是否正确对应。

您使用错误的参数顺序调用函数

更改此行($ptFirstName$ptsaltation)


您正在使用错误的参数顺序调用函数

更改此行($ptFirstName$ptsaltation)


警告您很容易使用SQL注入。在这里阅读更多。var_dump您的$SQL_patientInsert,我很确定您的VARAILE中有一个错误,可能是registerPatient调用中的order,您是否正确设置了列的表数据类型以及自动递增值等,似乎没有显示变量有任何错误,这就是插入后$SQL_patientInsert的var转储。-没有自动增量。所有值都允许为空。看不到我的列数据类型有任何问题。有什么想法吗?警告!您很容易使用SQL注入。在这里阅读更多。var_dump您的$SQL_patientInsert,我很确定您的VARAILE中有一个错误,可能是registerPatient调用中的order,您是否正确设置了列的表数据类型以及自动递增值等,似乎没有显示变量有任何错误,这就是插入后$SQL_patientInsert的var转储。-没有自动增量。所有值都允许为空。看不到我的列数据类型有任何问题。有什么想法吗?变量似乎没有显示任何不正确的地方,即插入之后的$SQL\u patientinsert的vardump,运行查询之前的vardump也会出现这种情况。变量似乎没有显示任何不正确的地方,这就是$SQL\u patientinsert的vardump在插入之后,在运行查询之前,vardump也会出现同样的情况。当您有这么多参数时,将它们作为单个
数组
传入并不是一个坏主意。这已经解决了。非常感谢,非常感谢。祝您有个美好的一天!当你有这么多的参数时,把它们作为一个单数
数组来传递并不是一个坏主意。这就解决了。非常感谢,非常感谢。祝您有个美好的一天!
string(495) "START TRANSACTION; INSERT INTO accDetails (`username`, `hashPassword`, `accType`) VALUES ('bingbong', '$2y$10$WDvSHSxzIxaYB8dPGLRIWOFyIdPXxSw5JDXagOxeYuJUtnvFhI.lO', 'Patient'); INSERT INTO ptProfile (`firstName`, `lastName`, `salutation`, `email`, `DOB`, `postCode`, `houseNo`, `telephoneNo`, `dtID`, `ptID`) VALUES ('Dr', 'Bing', 'Bong', 'EMAIL REMOVED FOR SO', '1996-08-02', 'POSTCODE REMOVED FOR SO', '7', '83824', '1256', LAST_INSERT_ID()); COMMIT;"
function registerPatient($ptUsername, $ptPassword, $ptFirstName, $ptLastName, $ptSalutation, $ptEmail, $ptDOB, $ptPostCode, $ptHouseNo, $ptTelNo, $link)
function registerPatient($ptUsername, $ptPassword, $ptSalutation, $ptFirstName, $ptLastName, $ptEmail, $ptDOB, $ptPostCode, $ptHouseNo, $ptTelNo, $link)