繁体   English   中英

mysql_query()的PHP参数计数错误-可能的语法错误

[英]PHP Wrong parameter count for mysql_query() - Possible Syntax Error

我已经为此战斗了一段时间,我对PHP语法不熟悉,这是我的代码:

    $eventArray = array($this->ReturnLastRecordId() + 1, $managerid, $title, $description, $category, $address, $location, $startdate, $starttime, $enddate, $endtime, $price, $endofticketdate, $totalseats,  $totalseats);
    $sql = "INSERT INTO event (eventid, managerid, title, description, category, address, location, startdate, starttime, enddate, endtime, price, endofticketdate, totalseats, totalseats)";
    $data->StoreData($eventArray, $sql);

在函数中:

public function StoreData($dataArray, $sqlquery)
    {

        include 'config.php';

        $i = count($dataArray);
        echo $i;
        switch ($i) {
            case 15:
            mysql_query($sqlquery . "VALUES (" . '$arraydata[0]' ,   '$arraydata[1]',  '$arraydata[2]',  '$arraydata[3]', '$arraydata[4]', '$arraydata[5]', '$arraydata[6]', '$arraydata[7]', '$arraydata[8]', '$arraydata[9]',  '$arraydata[10]', '$arraydata[11]', '$arraydata[12]',  '$arraydata[13]',  '$arraydata[14]' . ")", $con) or die (mysql_error());
            mysql_close($con);
                break;

        }
    }

显然,我已经多次检查了参数的数量,包括数据库,但仍然抛出了参数计数:(。

您没有串联SQL字符串。 您的代码传递多个单独的PHP函数参数。

最懒惰的修补程序是:

 $values = implode("','", $arraydata);

 mysql_query("$sqlquery VALUES ('$values')");

我建议您将mysql_query期望的整个单个字符串括在双引号中,然后在其中使用字符串插值。 避免手动操作. 级联。

您对sql查询的连接是错误的。 解决方案中的逗号不在字符串内,因此被php解释为其他参数。

应该是这样的:

    mysql_query($sqlquery . " VALUES ('$arraydata[0]' ,   '$arraydata[1]', )

等等。

您使用了串联操作数. 在不应该使用的地方建立SQL查询时。 尝试以下操作:

public function StoreData($dataArray, $sqlquery) {

    include 'config.php';

    $i = count($dataArray);
    echo $i;
    switch ($i) {
        case 15:
            mysql_query($sqlquery . " VALUES ('{$arraydata[0]}', '{$arraydata[1]}', '{$arraydata[2]}', '{$arraydata[3]}', '{$arraydata[4]}', '{$arraydata[5]}', '{$arraydata[6]}', '{$arraydata[7]}', '{$arraydata[8]}', '{$arraydata[9]}', '{$arraydata[10]}', '{$arraydata[11]}', '{$arraydata[12]}', '{$arraydata[13]}', '{$arraydata[14]}')", $con) or die (mysql_error());
            mysql_close($con);
            break;
    }
}

尝试修改此代码:

    $eventArray = array(($this->ReturnLastRecordId() + 1), $managerid, $title, $description, $category, $address, $location, $startdate, $starttime, $enddate, $endtime, $price, $endofticketdate, $totalseats,  $totalseats);
    $sql = "INSERT INTO event (eventid, managerid, title, description, category, address, location, startdate, starttime, enddate, endtime, price, endofticketdate, totalseats, totalseats)";
    $data->StoreData($eventArray, $sql);

public function StoreData($dataArray, $sqlquery)
    {

        include 'config.php';

        $i = count($dataArray);
        echo $i;
        switch ($i) {
            case 15:
            mysql_query($sqlquery . " VALUES (" . '$arraydata[0]' ,   '$arraydata[1]',  '$arraydata[2]',  '$arraydata[3]', '$arraydata[4]', '$arraydata[5]', '$arraydata[6]', '$arraydata[7]', '$arraydata[8]', '$arraydata[9]',  '$arraydata[10]', '$arraydata[11]', '$arraydata[12]',  '$arraydata[13]',  '$arraydata[14]' . ")", $con) or die (mysql_error());
            mysql_close($con);
                break;

        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM