PDOException:查询为空

时间:2015-09-28 08:14:45

标签: php arrays pdo

我有一个PDO PHP文件,它只使用存储在$data数组中的一个$ _POST值,如果一个语句为true,则向该数组添加第二个值以使用两个值创建一个新查询:

<?php
    session_start();
    include("../conexionbbdd.php");    

    if($_SESSION['estado'] == 'activo' && $_SESSION['rol'] == '1'){

    $data = array(
        'us_id'   => $_POST['us_id'],
    );

    $selectUsers= "SELECT * FROM ws_users WHERE us_id= :us_id";
    $statementSelectUsers = $pdo->prepare($selectUsers);
    $statementSelectUsers->execute($data);
    $result = $statementSelectUsers->fetch(PDO::FETCH_ASSOC);
    $us_fk_ui_id =  $result['us_fk_ui_id'];

    if($us_fk_ui_id==='1'){

        $data['us_credits']=$_POST['us_credits'];

        $updateUser = mysqli_query($con,"UPDATE ws_users SET us_credits = :us_credits, us_access = '1' WHERE us_id = :us_id");
        $statementUpdateUser = $pdo->prepare($updateUser);     
        $statementUpdateUser->execute($data); 
    }

一切顺利,直到$statementUpdateUser->execute($data);行(34),我得到通常的错误

  

PDOException:SQLSTATE [42000]:语法错误或访问冲突:1065   查询在C:\ wamp \ www ********** \ actions \ ad_updateUserInfo.php中为空   第34行

就我所见,这应该是由于数组中某个占位符的不存在,但是如果我在$data['us_credits']=$_POST['us_credits'];之后打印数组值似乎是正确的,那么我的查询所需的2个预期值:

  

阵列(       [0] =&gt; 2       [1] =&gt; 1.5)

我怎么能检查错误在哪里?由于无法对字符串进行转换,因此无法回显查询。

1 个答案:

答案 0 :(得分:-1)

$updateUser = mysqli_query($con,"UPDATE ws_users SET us_credits = :us_credits, us_access = '1' WHERE us_id = :us_id");
              ^^^ WTF??

你必须更加注意你写的代码。 Stack Overflow不是为您查找拼写错误的服务。