我一直在争论这个问题,我不熟悉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;
}
}
显然,我已多次检查参数的数量,包括数据库,但仍会抛出参数计数:(。
答案 0 :(得分:1)
您没有连接SQL字符串。您的代码传递了多个单独的PHP函数参数。
最懒的解决办法是:
$values = implode("','", $arraydata);
mysql_query("$sqlquery VALUES ('$values')");
我建议你用双引号括起mysql_query期望的整个单字符串,然后在其中使用字符串插值。避免手动.
连接。
答案 1 :(得分:0)
你的sql查询的连接是错误的。解决方案中的逗号位于字符串之外,因此由php解释为其他参数。
它应该是这样的:
mysql_query($sqlquery . " VALUES ('$arraydata[0]' , '$arraydata[1]', )
等等。
答案 2 :(得分:0)
在构建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;
}
}
答案 3 :(得分:0)
尝试修改代码:
$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;
}
}