【问题标题】:PHP Database not adding dataPHP数据库不添加数据
【发布时间】:2023-03-09 00:20:02
【问题描述】:

我在这个 PHP 中使用了 try/catch 语句,但我的代码正在执行 catch 语句,但不知道为什么,这是 catch 中生成的 JSON 消息。

{"success":0,"message":"Database Error1. Please Try Again!"}

代码如下

$query        = " SELECT 1 FROM tbl_client WHERE master_username = :user";
$query2        = " SELECT 1 FROM tbl_client WHERE institution_pin = :institution_pin";


$query_params = array(
    ':user' => $_POST['username']
);

$query_params2 = array(
    ':institution_pin' => $_POST['institution_pin']
);

try {
    $stmt   = $db->prepare($query);
    $result = $stmt->execute($query_params);
}
catch (PDOException $ex) {

    $response["success"] = 0;
    $response["message"] = "Database Error1. Please Try Again!";
    die(json_encode($response));
}

$row = $stmt->fetch();
if ($row) {

    $response["success"] = 0;
    $response["message"] = "I'm sorry, this username is already in use";
    die(json_encode($response));
}
try { 
$stmt   = $db->prepare($query2);
$result = $stmt->execute($query_params2);
}
catch (PDOException $ex) {

    $response["success"] = 0;
    $response["message"] = "Database Error1. Please Try Again!";
    die(json_encode($response));
}
$row = $stmt->fetch();
if ($row) {
    $response["success"] = 0;
    $response["message"] = "I'm sorry, someone has already chosen that PIN, choose another!";
    die(json_encode($response));
}

我查看了代码,但没有任何错误提示,也许我遗漏了什么?

【问题讨论】:

  • 您没有对抛出的异常 $ex 做任何事情。如果你暂时删除你的 try-catch 块,php 会告诉你到底哪里出了问题。或者你转储 $ex 包含的任何内容。

标签: php mysql json database mysqli


【解决方案1】:

插入

$response["error"] = $ex;

在你的 catch 语句中,这样你就可以看到发生了什么异常并触发了 catch。

【讨论】:

  • 我已经修改了我的代码,但仍然收到相同的 JSON 消息,有什么想法吗?
  • 您收到完全相同的消息?您是否编辑了两个 catch 语句,其中您的消息是“数据库错误 1。请重试!”?
  • 是的,我做到了,但仍然没有什么不同,那么有没有更好的方法来编写这个解决方案?
  • 您可以尝试回显 $ex 消息,因为我不确定我不太熟悉的 json 部分。或者正如 jeroen 提到的那样暂时删除你的 try-catch 块......
猜你喜欢
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 2015-05-09
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多