php sql 异常判断 100
在php中执行sql语句的时候,如果遇到sql语句有错误(比如插入的时候,有些值不符合约束),这时,php就会终止运行了。我是想问,能不能事先判断出sql语句是否存在错误...
在php中执行sql语句的时候,如果遇到sql语句有错误(比如插入的时候,有些值不符合约束),这时,php就会终止运行了。 我是想问, 能不能事先判断出sql语句是否存在错误?
当然,简单的判断我知道,比如唯一性约束,就先查询是否存在,如不存在再插入。 这种常规的,我是知道的。 我想问的是否能有一种综合的预判机制,可以判断出sql语句是否有错误,只需要关心是否有错误,而不需要去关心是哪种错误。
php的try...catch{} 不起作用的, 一旦遇到 ERROR级别的错误,就不会继续运行了 展开
当然,简单的判断我知道,比如唯一性约束,就先查询是否存在,如不存在再插入。 这种常规的,我是知道的。 我想问的是否能有一种综合的预判机制,可以判断出sql语句是否有错误,只需要关心是否有错误,而不需要去关心是哪种错误。
php的try...catch{} 不起作用的, 一旦遇到 ERROR级别的错误,就不会继续运行了 展开
5个回答
展开全部
可以使用 mysql_errno() 来判断上一条sql语句是否执行成功. 返回非0 都表示错误.
(若想获取错误的文本描述信息 , 可以使用 mysql_error() )
例子:
$资源句柄 = mysql_connect(....);
@mysql_query('abcdee' , $资源句柄);
var_dump(mysql_errno($资源句柄));
var_dump(mysql_error($资源句柄));
================================
实现判断语句是否正确. 那就得在拼接sql的时候下功夫.
如果把字段值的验证与过滤做到位了.
那拼接出来的sql 不会有问题的.
(若想获取错误的文本描述信息 , 可以使用 mysql_error() )
例子:
$资源句柄 = mysql_connect(....);
@mysql_query('abcdee' , $资源句柄);
var_dump(mysql_errno($资源句柄));
var_dump(mysql_error($资源句柄));
================================
实现判断语句是否正确. 那就得在拼接sql的时候下功夫.
如果把字段值的验证与过滤做到位了.
那拼接出来的sql 不会有问题的.
展开全部
mysql_connect('127.0.0.1','root','123456');
mysql_select_db('test');
$sql = "select * from abc";
try {
if(@!mysql_query($sql)) {
throw new Exception('产生数据链接错误',1); //抛出异常信息
}
echo '继续执行';
}catch(Exception $e) {
echo '异常处理';
//echo $e->__toString(); 捕获抛出异常信息
}
mysql_select_db('test');
$sql = "select * from abc";
try {
if(@!mysql_query($sql)) {
throw new Exception('产生数据链接错误',1); //抛出异常信息
}
echo '继续执行';
}catch(Exception $e) {
echo '异常处理';
//echo $e->__toString(); 捕获抛出异常信息
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已经写了程序,就比较麻烦了,
一般情况下,我的习惯是写好了程序,先输出语句,然后检查语句是否正常,再用程序执行,如果防止错误可以使用try 来防止 程序死掉,
try {
$sql = "";
//各种操作
} catch (Exception $e) {
//获取错误信息
echo 'Caught exception: ', $e->getMessage(), "\n";
}
一般情况下,我的习惯是写好了程序,先输出语句,然后检查语句是否正常,再用程序执行,如果防止错误可以使用try 来防止 程序死掉,
try {
$sql = "";
//各种操作
} catch (Exception $e) {
//获取错误信息
echo 'Caught exception: ', $e->getMessage(), "\n";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以先把sql 语句用 echo 输出.然后在命令行中调试.正确之后在写下面的程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try{}catch{}吧,捕捉到错误想怎么处理就看你自己了,也可以用事务处理,只有全部插入正确才会插入数据,否则会自动回滚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |