在 php 中显示 MYSQL 重复错误的错误消息

发布于 2024-11-19 11:28:30 字数 465 浏览 1 评论 0原文

我在表中对两列使用 UNIQUE Con​​straint 以防止重复行。如果我尝试插入具有相同 2 列的行,我会得到

发生数据库错误错误 数量:1062

密钥重复条目“62-88” “订阅”

插入订阅user_idsubscribed_to日期) 值('62'、'88'、'2011-07-11 19:15:13')

文件名: C:\wamp\www\mysite\system\database\DB_driver.php

行号:330

如何返回 php 错误,例如 Already subscribed! 而不是显示 mysql 错误?

I am using UNIQUE Constraint in my table for two columns to prevent duplicate rows. If I try to insert a row with the same 2 columns I get

A Database Error Occurred Error
Number: 1062

Duplicate entry '62-88' for key
'subscription'

INSERT INTO subscriptions
(user_id, subscribed_to, date)
VALUES ('62', '88', '2011-07-11
19:15:13')

Filename:
C:\wamp\www\mysite\system\database\DB_driver.php

Line Number: 330

How can I return a php error, e..g Already subscribed! instead of displaying the mysql error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

南汐寒笙箫 2024-11-26 11:28:30

在您的mysql_query() 并检查 1062

注意:首先查询数据库是更常见/直观的解决方案。请参阅 Manocho 的回答。

Call mysql_errno() after your mysql_query() and check for 1062.

Note: It's a more common/intuitive solution to query the database first. See answer by Manocho.

预谋 2024-11-26 11:28:30

我认为您需要手动运行查询来检查数据库中是否已存在该条目。类似于:SELECT COUNT(*) FROM subscriptions WHERE (user_id = '62' AND subscribed_to = '88')。如果返回的计数> 0 然后返回错误,但是您希望它显示。

I think you will need to run a query manually to check if the entry already exists in your database. so something like: SELECT COUNT(*) FROM subscriptions WHERE (user_id = '62' AND subscribed_to = '88'). If the count returned is > 0 then return the error, however you want it displayed.

你的笑 2024-11-26 11:28:30

使用第三个链接,比较mysql 错误或 mysql errno到错误列表,如果满足条件,请提供备用错误消息。

Using the 3rd link, compare the mysql error or mysql errno to the list of errors and if the condition is met, provide your alternate error message.

没有你我更好 2024-11-26 11:28:30

要解决该错误,您可以执行以下操作:

mysql_query($sql);

if (mysql_errno() == 1062) {       
  print "<script type=\"text/javascript\">"; 
  print "alert('The informations are already inserted')"; 
  print "</script>";
}

To solve the error you can do this:

mysql_query($sql);

if (mysql_errno() == 1062) {       
  print "<script type=\"text/javascript\">"; 
  print "alert('The informations are already inserted')"; 
  print "</script>";
}
新人笑 2024-11-26 11:28:30

试试这个代码:

  $query = "INSERT INTO ".$table_name." ".$insertdata;
                if(mysqli_query($conn,$query)){
                    echo "data inserted into DB<br>";                   
                }else{
                   if(mysqli_errno($conn) == 1062)
                       echo "duplicate entry no need to insert into DB<br>";
                   else
                    echo "db insertion error:".$query."<br>";

                }//else end

try this code :

  $query = "INSERT INTO ".$table_name." ".$insertdata;
                if(mysqli_query($conn,$query)){
                    echo "data inserted into DB<br>";                   
                }else{
                   if(mysqli_errno($conn) == 1062)
                       echo "duplicate entry no need to insert into DB<br>";
                   else
                    echo "db insertion error:".$query."<br>";

                }//else end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文