Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php 数据库(MySQL)意外报错出现在页面上的问题?

数据库(MySQL)意外报错出现在页面上的问题?

Aug 04, 2016 am 09:21 AM
ci mysql php

框架中如何禁止数据库(MySQL)意外报错?
比如说我这边有两个excel表格上传功能,当然我两个地方,写的excel接收数据的处理方法不一样,但是你知道,数据库中有些字段的名称不能为空,如果两个地方的excel文件互相对调上传,那么这个时候就会出现sql报错,就像下图这样:

数据库(MySQL)意外报错出现在页面上的问题?

  1. 如果我每个接收字段的数据,都要对应数据库做不能为空判断,岂不是太麻烦?

  2. 我一个excel表格上传功能,只单单对应的一个方法,也就是一对一。因为我excel结构不一样,所以一个方法对应一个类型的excel结构处理。

所以想求一个能屏蔽sql报错出现在页面上的解决办法,请大神指教。

回复内容:

框架中如何禁止数据库(MySQL)意外报错?
比如说我这边有两个excel表格上传功能,当然我两个地方,写的excel接收数据的处理方法不一样,但是你知道,数据库中有些字段的名称不能为空,如果两个地方的excel文件互相对调上传,那么这个时候就会出现sql报错,就像下图这样:

数据库(MySQL)意外报错出现在页面上的问题?

  1. 如果我每个接收字段的数据,都要对应数据库做不能为空判断,岂不是太麻烦?

  2. 我一个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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mysql: Konsep mudah untuk pembelajaran mudah Mysql: Konsep mudah untuk pembelajaran mudah Apr 10, 2025 am 09:29 AM

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.

Cara Membuat Premium Navicat Cara Membuat Premium Navicat Apr 09, 2025 am 07:09 AM

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: Adaptasi dan Inovasi Masa Depan PHP: Adaptasi dan Inovasi Apr 11, 2025 am 12:01 AM

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 vs Python: Memahami Perbezaan PHP vs Python: Memahami Perbezaan Apr 11, 2025 am 12:15 AM

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.

Cara Membuat Sambungan Baru ke MySQL di Navicat Cara Membuat Sambungan Baru ke MySQL di Navicat Apr 09, 2025 am 07:21 AM

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: Kemahiran Penting untuk Pemaju MySQL dan SQL: Kemahiran Penting untuk Pemaju Apr 10, 2025 am 09:30 AM

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: Adakah ia mati atau hanya menyesuaikan diri? PHP: Adakah ia mati atau hanya menyesuaikan diri? Apr 11, 2025 am 12:13 AM

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.

Cara Memulihkan Data Selepas SQL Memadam Barisan Cara Memulihkan Data Selepas SQL Memadam Barisan Apr 09, 2025 pm 12:21 PM

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.

See all articles