简体   繁体   English

如何在JavaScript警报框中显示SQL错误消息?

[英]how to show sql error message in a javascript alert box?

I have a code which insert some values into a database table. 我有一个将一些值插入数据库表的代码。 It is working properly. 它工作正常。 I wont to get errors like database connecting errors,duplicate entry. 我不会收到类似数据库连接错误,重复输入的错误。 Here is my code. 这是我的代码。 Untitled Document 无标题文档

<body>
<?php
require '../classes/dbconnect.php';

$PId=$_POST["PatientId"];
$pName=$_POST["NameOfPatient"];
$age=$_POST["AgeOfPatient"];
$lId=$_SESSION['username'];
$fbs=$_POST["FBS"];
$sc=$_POST["Serum"];
$bu=$_POST["urea"];
$sgot=$_POST["sgot"];
$sgpt=$_POST["sgpt"];
$sa=$_POST["SAP"];
$sp=$_POST["protein"];
$sea=$_POST["albumin"];
$globulin=$_POST["globulin"];
$date=$_POST["date"];
$_SESSION['FBS'] = $fbs;


$db = new Database("localhost", "root", "", "mlab");
$x = $db->insert("INSERT INTO blood_report VALUES
('$PId','$lId','$date','$pName','$age','$fbs','$sc','$bu','$sgot','$sgpt','$s    a','$sp','$sea','$globulin')");

if($x == 1){
    header("Location:../bloodreport.php");
}else{
    $str = "error :" . $db->err();
    ?>
    <script>
    var erro= '<?php echo "error :" . $db->err(); ?>';
    </script>
    <?php
    //echo $str;
    echo '<script type="text/javascript">alert("Duplicate entry");history.go(-1);</script>';
}
echo $x;

?>

try this way 尝试这种方式

......
if($x == 1){
   header("Location:../bloodreport.php");
}else{
   $str = "error :" . $db->err();
   ?>
<script>
    var erro= <?php echo '"error : '  . $db->err() . '"';  ?>;
</script>
......

You can wrap each critical statement in try...catch block and logging error. 您可以将每个关键语句包装在try ... catch块和日志记录错误中。

try {
$db = new Database("localhost", "root", "", "mlab");
} catch (Exception $e) {
$errString = $e->getMessage(); 
}

try {
    $x = $db->insert("INSERT INTO blood_report VALUES
('$PId','$lId','$date','$pName','$age','$fbs','$sc','$bu','$sgot','$sgpt','$s    a','$sp','$sea','$globulin')");
} catch (Exception $e) {
$errString = $e->getMessage(); 
}

EDIT Later do : 编辑以后做:

<?php if (isset($errString) && $errString !== '') { ?>
<script>
var error = "<?php echo 'error : ' . $errString; ?>";
alert(error);
</script>
<?php } ?>

Also validate post before insertion http://php.net/manual/en/function.filter-input.php 插入前还要验证帖子http://php.net/manual/zh/function.filter-input.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM