第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

SQLSTATE[HY093]:參數(shù)數(shù)量無效:綁定變量的數(shù)量與標(biāo)記數(shù)量不匹配 COUNT 是正確的

SQLSTATE[HY093]:參數(shù)數(shù)量無效:綁定變量的數(shù)量與標(biāo)記數(shù)量不匹配 COUNT 是正確的

PHP
收到一只叮咚 2023-08-11 16:15:26
我一直對(duì)此感到困惑并嘗試解決問題幾個(gè)小時(shí)。我在 StackOverflow 上閱讀了大約 30 個(gè)關(guān)于這個(gè)相同錯(cuò)誤的問題。似乎沒有一個(gè)相關(guān)。字段名稱和值是從長(zhǎng)數(shù)組中提取的。以前,這是一個(gè) MySQL 查詢,在過去 5 年中一直運(yùn)行良好,因此該數(shù)組沒有任何問題。正如你所看到的,在故障排除中,我添加了變量 $FCount、$VCount 和 $PCount;確保計(jì)數(shù)相同,盡管這相當(dāng)愚蠢,因?yàn)闊o論如何,它們都會(huì)在循環(huán)過程中進(jìn)行計(jì)數(shù)。作為雙重檢查,您可以在我的異常代碼中看到我添加了計(jì)數(shù)和字符串作為第二個(gè)保證,并對(duì)它們進(jìn)行了多次計(jì)數(shù)。我什至免除了具有空白值的字段。我對(duì) PDO 相當(dāng)陌生,不知道這里出了什么問題。<?php    $DSN = "mysql:host=$HOST;dbname=$DBName;charset=utf8";    $Options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false,);    try{$pdo = new PDO($DSN, $USER, $PASSWORD, $Options);}    catch (PDOException $e)    {        $LogData = "\n".date('Y-m-d H:i').' '.$_SESSION[PageName].' '.$e->getMessage().' '.(int)$e->getCode();        error_log($LogData, 3, "error.log");        exit('<h2 style="width:90%; border:2px solid #FF0000; padding:15px;">Server Connect Error! [1]</h2>');    }    $FCount = 0;    $VCout = 0;    $PCount = 0;    foreach($RateVars as $key => $value)    {        if(!empty($value))        {            $FieldString .= trim($key) . ','; $FCount++;            $VarString .= '"' . addslashes(trim($value)) . '",'; $VCount++;            $PrepString .= '?, '; $PCount++;        }    }    $FieldString    .= 'Server';    $VarString      .= '"'.$Node.'"';    $PrepString     .= '?';    $sql = 'INSERT INTO Archive ('.$FieldString.') VALUES ('.$PrepString.')';    $stmt = $pdo->prepare($sql);    try {$stmt->execute(array($VarString));}    catch (PDOException $e)?>添加注釋簡(jiǎn)短示例(這里有 72 個(gè)變量),從我的錯(cuò)誤日志打印出 $sql: INSERT INTO RateArchive (EstType,hszip,hczip,wswxds,etc...) VALUES ("W","58102"," 58652","000050000000000000","0500000000000000"等) 在回答下面的評(píng)論時(shí),$Node 的值是“DEV”,這正是它在值字符串末尾的顯示方式。
查看完整描述

1 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

每個(gè)參數(shù)都需要是傳遞給 的數(shù)組中的單獨(dú)元素$stmt->execute(),它不應(yīng)該是單個(gè)逗號(hào)分隔的字符串。


<?php

$DSN = "mysql:host=$HOST;dbname=$DBName;charset=utf8";

$Options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false,);

try{$pdo = new PDO($DSN, $USER, $PASSWORD, $Options);}

catch (PDOException $e)

{

    $LogData = "\n".date('Y-m-d H:i').' '.$_SESSION[PageName].' '.$e->getMessage().' '.(int)$e->getCode();

    error_log($LogData, 3, "error.log");

    exit('<h2 style="width:90%; border:2px solid #FF0000; padding:15px;">Server Connect Error! [1]</h2>');

}

$FCount = 0;

$VCount = 0;

$PCount = 0;


$PrepString = str_repeat("?, ", count($RateVars));

$FieldString = implode(',', array_keys($RateVars));

$PrepString .= '?';

$FieldString .= ', Server';

$ValArray = array_values($RateVars);

$ValArray[] = $Node;

$sql = 'INSERT INTO Archive ('.$FieldString.') VALUES ('.$PrepString.')';

$stmt = $pdo->prepare($sql);

try {

    $stmt->execute($ValArray);

} catch (PDOException $e)

{

    $ErrorMsg = "DataBase Error in Save to Archive"; $Status=1;

    $LogData = "\n".date('Y-m-d H:i').' '.$_SESSION[PageName].' '.$ErrorMsg.' '.$e->getMessage().' '.(int)$e->getCode();

    $LogData .= "\n".'F: '.$FCount.' V: '.$VCount.' P: '.$PCount;

    $LogData .= "\n".'F: '.$FieldString."\n".' V: '.implode(',', $ValArray)."\n".' P: '.$PrepString."\n".$sql;

    error_log($LogData, 3, "error.log");

}


?>


查看完整回答
反對(duì) 回復(fù) 2023-08-11
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)