if / else错误消息给PHP MYSQL查询

时间:2014-11-13 07:19:31

标签: php mysql

我有一个简单的查询(AJAX)。我注意到如果$insert_stmt没有执行,我仍然会收到成功消息。

if ($insert_stmt = $mysqli->prepare("INSERT INTO `alerte` (`nom_alerte`, `country`, `date_debut_alerte`) VALUES (?, ?, ?)")) {
  $insert_stmt->bind_param('sss', $alert_name, $country, $start_alert_date);
  $insert_stmt->execute();
  $reponse = 'success';
} else {
  $reponse = 'Sorry, a database error occurred; please try later';
}
echo json_encode(["reponse" => $reponse]);

我想知道是否有一种方法可以添加另一个if / else语句来验证执行

我尝试了类似的东西,但我不确定它是不是很好的编码:

if ($insert_stmt = $mysqli->prepare("INSERT INTO `alerte` (`nom_alerte`, `country`, `date_debut_alerte`) VALUES (?, ?, ?, ?)")) {
  $insert_stmt->bind_param('sss', $alert_name, $country, $start_alert_date);

  // inserted part if/else check
  if (! $insert_stmt->execute()) {
    $reponse = 'Sorry, a database error occurred; please try later';
  } else {
    $reponse = 'success';
  }
} else {
  $reponse = 'Sorry, a database error occurred; please try later';
}

有人能告诉我它是否合适或是否有更好的方法?

2 个答案:

答案 0 :(得分:0)

请像这样逐步调试代码。

如果你有,肯定会给你的错误。

if ($stmt = $mysqli->prepare("INSERT INTO `alerte` (`nom_alerte`, `country`, `date_debut_alerte`) VALUES (?, ?, ?, ?)")) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->bind_param('sss', $alert_name, $country, $start_alert_date)){
    echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}else {
    $reponse = 'success';
}

一旦你犯错了。您可以稍后相应地更改您的代码。

我希望这会帮助你轻松找到你的错误!

答案 1 :(得分:-1)

我不确定alerte - 表中列的类型,但我认为错误是每个插入值的遗忘引号...

试试这个:

INSERT INTO `alerte` (`nom_alerte`, `country`, `date_debut_alerte`) VALUES ('?', '?', '?')