我有一个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)
我怎么能检查错误在哪里?由于无法对字符串进行转换,因此无法回显查询。
答案 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不是为您查找拼写错误的服务。