PHP中执行sql语句不能跳转,php中如何当sql语句出错时,自动跳转到一个指定页面?...

这篇博客讨论了在PHP中处理SQL查询时,如何避免将错误信息直接展示给用户,而是采用header()函数进行友好的页面跳转。内容提到了使用try-catch块来捕获错误,并在出错时执行跳转,确保用户不会看到敏感的错误信息。
摘要由CSDN通过智能技术生成

5268f80b9b1e01f982625ef6fac83ca1.png

目前用的是 die(“sql语句出错”);

但不想让用户看到些,应该如何处理?

回复讨论(解决方案)

header("location:目标地址");exit();

header("location:目标地址");exit();

跳转语句我知道,但是如何执行到这一句?

比如,当前语句 是 mysql_query($sql)or die(“sql出错”);

我想你学了面向对象的话就不会问这个问题。

所有的sql都在那么几个方法类执行,try,catch捕捉错误。跳转处理

$result = mysql_query($sql);if(!$result){ header("location:目标地址"); exit();}

楼主要的是 出错时 不想让用户看到

那么 自动跳转到一个指定页面 和就在本页输出,并没有区别

与有关错误信息一样会展现在用户面前

楼主要的是 出错时 不想让用户看到

那么 自动跳转到一个指定页面 和就在本页输出,并没有区别

与有关错误信息一样会展现在用户面前

你理解的非常正确

我理解的非常正确,那么就是你吧需求描述错了

我理解的非常正确,那么就是你吧需求描述错了

你的解决办法是哪个

记录错误到日志

继续执行程序,但需要判断数据的有效性

不过仅就你示例的情况看,那样做是没有必要的

sql 指令出错仅会在调试阶段发生,正式运行时是不会发生 sql 语法错误的

除非你允许用户提交 sql 指令,但也应告诉提交者 sql 指令是错的

感谢两位版主的回复,各自收分

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

好的,以下是一个连接SQL Server数据库的Java Swing登录页面完整代码示例: ``` import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class LoginFrame extends JFrame { private JPanel panel; private JLabel userLabel, passLabel; private JTextField userText; private JPasswordField passText; private JButton loginButton; // SQL Server数据库连接信息 private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=mydb"; private static final String USERNAME = "sa"; private static final String PASSWORD = "123456"; public LoginFrame() { super("登录页面"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new JPanel(new GridLayout(3, 2)); userLabel = new JLabel("用户名"); passLabel = new JLabel("密码"); userText = new JTextField(); passText = new JPasswordField(); loginButton = new JButton("登录"); panel.add(userLabel); panel.add(userText); panel.add(passLabel); panel.add(passText); panel.add(new JLabel()); panel.add(loginButton); add(panel); loginButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String user = userText.getText(); String pass = new String(passText.getPassword()); if (validateUser(user, pass)) { JOptionPane.showMessageDialog(LoginFrame.this, "登录成功!"); dispose(); // 在此处打开另一个JFrame,显示其他页面 // ... } else { JOptionPane.showMessageDialog(LoginFrame.this, "用户名或密码错误!"); } } }); } // 验证用户登录信息 private boolean validateUser(String user, String pass) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { // 加载驱动程序 Class.forName(DRIVER); // 建立数据库连接 conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); // 预处理SQL语句 String sql = "SELECT COUNT(*) FROM users WHERE username = ? AND password = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, user); stmt.setString(2, pass); // 执行查询并获取结果集 rs = stmt.executeQuery(); // 遍历结果集 if (rs.next()) { int count = rs.getInt(1); if (count > 0) { return true; } } } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } finally { try { // 关闭数据库连接 if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException ex) { ex.printStackTrace(); } } return false; } public static void main(String[] args) { new LoginFrame().setVisible(true); } } ``` 在这个示例,我们添加了一个名为validateUser的方法,用于验证用户登录信息。该方法连接SQL Server数据库,并执行一个预处理的SQL语句,查询用户名和密码是否与数据库的记录匹配。如果匹配,则返回true,否则返回false。 请注意,您需要根据您的实际情况修改SQL Server数据库连接信息。此外,您需要根据您的实际需求修改打开其他页面的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值