douman6245 2016-01-03 18:48
浏览 783
已采纳

SQLSTATE [22018]:强制转换规范的字符值无效

Greetins, I have some trouble with PDO functions.

MY CODE:

while (($data = fgetcsv($handle, 1000, ",", "'")) !== FALSE) {
        if($i > 0) {
            $data = str_replace('"', '', $data); 
            $myDate =  date("Y/m/d",strtotime(str_replace('-','-',$data[0])));
            $data = str_replace(' ', '', $data);
            $lastname = $data[1];
            $firstname = $data[2];
            $showdata = $db->prepare("SELECT userID FROM users WHERE firstname LIKE '%$firstname%' AND lastname LIKE '%$lastname%'");
            $showdata->execute();
            $rowas= $showdata->fetch(PDO::FETCH_ASSOC);
            $userioID = $rowas['userID'];

            $removals=$db->prepare("DELETE FROM late WHERE userID = '$userioID' AND dateandtime= '$myDate' ;");
            $removals->execute();


            $import->bindParam(1, $myDate, PDO::PARAM_STR);                      
            $import->bindParam(2, $data[4], PDO::PARAM_STR);
            $import->bindParam(3, $rowas['userID'], PDO::PARAM_STR);                
            $import->execute();
        }
        $i++;
    }

Without removals part everything is working just fine. With removals - I get error: SQLSTATE[22018]: Invalid character value for cast specification: -3030 [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. (SQLExecute[-3030] at ext\pdo_odbc\odbc_stmt.c:254)

Any help would be appreciated.

  • 写回答

1条回答 默认 最新

  • dtueufe82643 2016-01-03 20:00
    关注

    You are comparing a string to an integer. This cannot work.

    userID = '$userioID'
    

    If the "userID" is an int you cannot compare it to string like '1'. Something like this may work:

    userID = $userioID
    

    I would also consider using bindParam method in all your SQL queries.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度