2014-08-29 73 views
-2

我有一个网站,您可以在其中输入您观看过的电视剧。有两个表,其中标题是主键,另一个表将该标题作为外键引用。在php中捕获mysql错误并给出自定义响应

由于数据是由不熟悉编程奇迹的用户输入的,我想尝试捕获外键约束失败的mysql错误,并给出“找不到标题”等响应。

我知道你可以在Java中尝试catch块。

我创建这个网站纯粹是为了练习我的网站开发技巧,因为我对编程相当陌生,所以它没什么严重的。

+0

你已经实现了一个数据库结构吗?如果是这样,请您发帖吗? – Giorgio 2014-08-29 09:40:22

+0

你的意思是我的创建表语句? – Eridanis 2014-08-29 09:46:50

回答

1

当然。这取决于你正在使用的MySQL API。如果你使用的是ext/mysql,stop using it。如果您使用的是mysqli或PDO,则取决于您是否配置了两者以引发异常(在这种情况下,try..catch将执行此操作),或者功能是否仅失败return false,在这种情况下,您必须添加错误处理代码:

if (!mysqli_query(...)) { 
    // handle error here 
} 

要区分不同的SQL错误,请使用mysqli_errno

+0

我只使用mysqli函数与PHP多数民众赞成它,你可以指示我如果可能的指导,我的变量返回false。到目前为止,我已经这样做了:$ insert = mysqli_query($ connection,$ query); if($ insert == false){ \t die(“error:”。mysqli_error($ connection)); } else { \t mysqli_close($ connection); \t echo $ title。 “已插入”; } – Eridanis 2014-08-29 09:41:18

+0

所以,你已经有90%的路了。只要不是'die()',做一些更有用的事情。 – deceze 2014-08-29 09:43:27

+0

是的,但事情是,$插入可能由于多种原因是错误的,例如,如果用户试图插入相同的标题两次,它会抛出一个“重复项主键”错误,我不会能够区分使用当前条件的两个条件 – Eridanis 2014-08-29 09:48:26

相关问题