数据库(MySQL)意外报错出现在页面上的问题?
框架中如何禁止数据库(MySQL)意外报错?
比如说我这边有两个excel表格上传功能,当然我两个地方,写的excel接收数据的处理方法不一样,但是你知道,数据库中有些字段的名称不能为空,如果两个地方的excel文件互相对调上传,那么这个时候就会出现sql报错,就像下图这样:
如果我每个接收字段的数据,都要对应数据库做不能为空判断,岂不是太麻烦?
我一个excel表格上传功能,只单单对应的一个方法,也就是一对一。因为我excel结构不一样,所以一个方法对应一个类型的excel结构处理。
所以想求一个能屏蔽sql报错出现在页面上的解决办法,请大神指教。
回复内容:
框架中如何禁止数据库(MySQL)意外报错?
比如说我这边有两个excel表格上传功能,当然我两个地方,写的excel接收数据的处理方法不一样,但是你知道,数据库中有些字段的名称不能为空,如果两个地方的excel文件互相对调上传,那么这个时候就会出现sql报错,就像下图这样:
如果我每个接收字段的数据,都要对应数据库做不能为空判断,岂不是太麻烦?
我一个excel表格上传功能,只单单对应的一个方法,也就是一对一。因为我excel结构不一样,所以一个方法对应一个类型的excel结构处理。
所以想求一个能屏蔽sql报错出现在页面上的解决办法,请大神指教。
数据库报错不是不能屏蔽,但是没必要,而且这会产生更多问题。既然某字段不能为Null自然有其道理,你非要写进去那后面处理的时候到了这个地方怎么办?由此也可以看出你没有对数据在执行插入前进行有效性检查,上传数据等同于用户录入的数据,必须防止脏数据进入。
通常的处理逻辑为:
逐行读取csv,使用验证规则验证数据,如果ok存入$success,否则存入$bad,根据业务逻辑不同,当$bad非空时可能先显示清单要求用户确认抛弃不合法的数据,也有的直接把$success中的数据遍历插入,然后生成报告哪些已经插入,哪些未处理。
既然你有多种格式的csv,自然应该检查一下当前上传的csv是否与处理方法一致,否则万一真存进去了怎么办?真心不建议偷懒。
用 try {}catch (Exception $e){}捕捉异常就可以了
框架的话应该可以关闭debug模式,按理说都可以自动屏蔽掉的。
如果是想要在代码中手动把空字段设置为默认值,可以自己写一个过滤器,过滤器里面判断是否为空,是的话给一个默认值。
1、你可以在数据库设计的时候定义一个默认值比如0
2、在程序上在插入这条数据时,user_id字段你保证它有值。
如果生产中该字段允许为 null ,那就改表
如果不允许,那报错就说明数据有问题,ignore 是有危险的。你应该保证源数据不为 null,而不是粗暴地 ignore

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

Anda boleh membuat sambungan MySQL baru di Navicat dengan mengikuti langkah -langkah: Buka aplikasi dan pilih Sambungan Baru (Ctrl N). Pilih "MySQL" sebagai jenis sambungan. Masukkan nama host/alamat IP, port, nama pengguna, dan kata laluan. (Pilihan) Konfigurasikan pilihan lanjutan. Simpan sambungan dan masukkan nama sambungan.

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

PHP tidak mati, tetapi sentiasa menyesuaikan diri dan berkembang. 1) PHP telah menjalani beberapa lelaran versi sejak tahun 1994 untuk menyesuaikan diri dengan trend teknologi baru. 2) Ia kini digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan bidang lain. 3) Php8 memperkenalkan pengkompil JIT dan fungsi lain untuk meningkatkan prestasi dan pemodenan. 4) Gunakan OPCACHE dan ikut piawaian PSR-12 untuk mengoptimumkan prestasi dan kualiti kod.

Memulihkan baris yang dipadam secara langsung dari pangkalan data biasanya mustahil melainkan ada mekanisme sandaran atau transaksi. Titik Utama: Rollback Transaksi: Jalankan balik balik sebelum urus niaga komited untuk memulihkan data. Sandaran: Sandaran biasa pangkalan data boleh digunakan untuk memulihkan data dengan cepat. Snapshot Pangkalan Data: Anda boleh membuat salinan bacaan pangkalan data dan memulihkan data selepas data dipadam secara tidak sengaja. Gunakan Pernyataan Padam dengan berhati -hati: Periksa syarat -syarat dengan teliti untuk mengelakkan data yang tidak sengaja memadamkan. Gunakan klausa WHERE: Secara jelas menentukan data yang akan dipadam. Gunakan Persekitaran Ujian: Ujian Sebelum Melaksanakan Operasi Padam.
