为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 准备好的语句没有正确执行

PHP 准备好的语句没有正确执行

PHP
潇湘沐 2022-01-02 15:33:06
我一直盯着一个问题很久了。我有一个 PHP 文件,它正在准备插入查询、绑定参数并执行查询(简单)。询问$stmt = $db->prepare("SELECT insert_user(?, ?, ?, ?, ?, ?)");出于某种原因,execute 返回的 $stmt 对象为受影响的行返回 -1。如果我更改代码以使用我想要绑定的值执行插入查询,而不是硬编码,则查询工作得很好。硬编码查询$db->query("SELECT insert_user('Test', 'Account', 'testAccount@testApp.io', 'testAccount9', '1980-01-01', 1)");bind_param 部分出了点问题。我打开了错误并且也在检查 mysqli 错误,但两者都没有返回错误。PHP文件...$postdata = file_get_contents("php://input");if (isset($postdata) && !empty($postdata)) {  $request = json_decode($postdata);}if (  validate_string($request->fname)   && validate_string($request->lname)   && validate_integer(intval($request->gender))) {      $stmt = $db->prepare("SELECT insert_user(?, ?, ?, ?, ?, ?)");      if ($stmt) {        $stmt->bind_param("ssssis", $first_name, $last_name, $email, $password, $gender, $dob);        $first_name = $request->fname;        $last_name = request->lname;        $email = $request->email;        $password = password_hash($request->password, PASSWORD_BCRYPT);        $gender = intval($request->gender);        $dob = $request->dob;        $stmt->execute();        if ($stmt->affected_rows > 0) {          echo toJson('success');        } else {          echo toJson('fail');        }     } else {         echo toJson("Prepare failed: (" . $db->errno . ") " . $db->error);     }} else {    echo toJson('fail - passed data not valid');}...我觉得此时的错误一定很简单,但我已经尝试了至少 23,432 种不同的东西,但都没有成功。
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

我猜问题出在这里 "ssssis" 。第五个应该是字符串,最后一个整数。也许这应该有效?


查看完整回答
反对 回复 2022-01-02
  • 1 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号