Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL无法更新数据库中的行_Php_Mysql - Fatal编程技术网

Php MySQL无法更新数据库中的行

Php MySQL无法更新数据库中的行,php,mysql,Php,Mysql,我正在尝试更新选定的数据行,但无法更新它。运行代码后,我将获得以下输出{“RowCount”:0,“results”:[]}。我应该得到1,但我没有得到它。我能知道如何解决这个问题吗 这是我的PHP代码: case 'updateStudent': $studentUpdateSQL = "UPDATE srs_student SET surname=:surname, forename=:forename, email=:email WHERE stud

我正在尝试更新选定的数据行,但无法更新它。运行代码后,我将获得以下输出
{“RowCount”:0,“results”:[]}
。我应该得到1,但我没有得到它。我能知道如何解决这个问题吗

这是我的PHP代码:

case 'updateStudent':
$studentUpdateSQL = "UPDATE srs_student SET surname=:surname, forename=:forename,
                    email=:email WHERE studentid=:id";
$rs = new JSONRecordSet();
$retval = $rs->getRecordSet($studentUpdateSQL, 'ResultSet',
          array(':surname'=>$surname,
                ':forename'=>$forename,
                ':email'=>$email,
                ':id'=>$id
            ));
echo $retval;
break;
这是JSONRecordSet类:

function getRecordSet($sql, $elementName = "ResultSet", $params = null) {
    $stmt     = parent::getRecordSet($sql, $params);
    $recordSet = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $nRecords = count($recordSet);
    if ($nRecords == 0) {
        $status = 'error';
        $message = json_encode(array("text" => "No records found"));
        $result = '[]';
    }
    else {
        $status = 'ok';
        $message = json_encode(array("text" => ""));
        $result = json_encode($recordSet);
    }
    return "{\"RowCount\": $nRecords ,\"results\": $result}";
  }
 }

如果您展示了
JSONRecordSet
类,这会很有帮助。实际上其他案例都在运行,所以我认为JSONRecordSet运行良好,但无论如何,我会发布JSONRecordSet类code@Daan我已经用代码更新了我的问题,您正在getRecordSet中执行fetchAll。不能将fetchAll与
UPDATE
语句一起使用。它返回
false
我看不到任何地方准备或执行或查询。
$rs = new JSONRecordSet();
$db_conn = pdoDB::getConnection();
$stmt=$db_conn->prepare($studentUpdateSQL);
$retval=$stmt->execute(array(':surname'=>$surname,
              ':forename'=>$forename,
              ':email'=>$email,
              ':id'=>$id));
echo $retval;