如何更改语法 SQL 访问 phpmyadmin SQL/SQL 服务器
Posted
技术标签:
【中文标题】如何更改语法 SQL 访问 phpmyadmin SQL/SQL 服务器【英文标题】:how to change syntax SQL access to phpmyadmin SQL/SQL server 【发布时间】:2019-05-10 11:01:56 【问题描述】:信息错误:
您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,以了解在 ')-Tanggalpjm)+1 As Lmpinjam, IFF (LMPINJAM>5,(LMPINJAM-5)*500,0) AS DENDA From t' at line 附近使用的正确语法1
这是我的数据库:
这个语法是如何工作的: 1.在组合框中选择会员号或在组合框中输入会员号(第二格会出现已借书 2.在第一栏的第一个格子上输入图书的代码(如B001、B002、B003等),如果文件从未被借过,则会出现图书从未被借过的信息。 3. 取消某些Book code的退货可以在相关Book行按ESC" 4.保存前先填写“支付金额”
denda = 付款
它在 DataGridView1 上的错误,因为这个脚本使用 SQL 访问,而我的 vb 使用 phpmyadmin 作为数据库 那么如何将此语法更改为 phpmyadmin SQL?
("Select distinct tbBuku.NomorBK,tbdetailpjm.Nomorpjm,Judul,JumlahBK,tanggalpjm, (Date()-Tanggalpjm)+1 As Lmpinjam, IFF (LMPINJAM>5,(LMPINJAM-5)*500,0) AS DENDA From tbAnggota,tbPinjam,tbBuku,tbDetailpjm Where tbBuku.NomorBK=tbDetailpjm.NomorBK And tbPinjam.Nomorpjm=tbDetailpjm.Nomorpjm And tbAnggota.Nomoragt=Pinjam.Nomoragt And tbAnggota.Nomoragt='" & CmbNomoragt.Text & "' AND tbDETAILPJM.NomorBK='" & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "' AND DETAILPJM.JUMLAHBK>0", conn)
完整脚本:
Imports mysql.Data.MySqlClient
Imports System.Math
Private Sub DgLaporan_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgLaporan.CellEndEdit
If e.ColumnIndex = 0 Then
CMD = New MySqlCommand("select NomorBK from tbanggota,tbpinjam,tbdetailpjm where NomorBK ='" & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "' and tbpinjam.nomorpjm=tbdetailpjm.nomorpjm and tbanggota.nomoragt=tbpinjam.nomoragt and tbanggota.nomoragt='" & CmbNomoragt.Text & "' AND tbdetailpjm.JUMLAHBK>0", conn)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
MsgBox(" " & LblNamaAgt.Text & " tidak meminjam kode Buku " & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "")
Call HapusBaris()
Exit Sub
RD.Close()
End If
RD.Close()
CMD = New MySqlCommand("Select distinct tbBuku.NomorBK,tbdetailpjm.Nomorpjm,Judul,JumlahBK,tanggalpjm, (Date()-Tanggalpjm)+1 As Lmpinjam, IFF (LMPINJAM>5,(LMPINJAM-5)*500,0) AS DENDA From tbAnggota,tbPinjam,tbBuku,tbDetailpjm Where tbBuku.NomorBK=tbDetailpjm.NomorBK And tbPinjam.Nomorpjm=tbDetailpjm.Nomorpjm And tbAnggota.Nomoragt=Pinjam.Nomoragt And tbAnggota.Nomoragt='" & CmbNomoragt.Text & "' AND tbDETAILPJM.NomorBK='" & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "' AND DETAILPJM.JUMLAHBK>0", conn)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
DgLaporan.Rows(e.RowIndex).Cells(1).Value = RD.Item(1)
DgLaporan.Rows(e.RowIndex).Cells(2).Value = RD.Item(2)
DgLaporan.Rows(e.RowIndex).Cells(3).Value = RD.Item(3)
DgLaporan.Rows(e.RowIndex).Cells(4).Value = RD.Item(4)
DgLaporan.Rows(e.RowIndex).Cells(5).Value = RD.Item(5)
DgLaporan.Rows(e.RowIndex).Cells(6).Value = RD.Item(6)
DgLaporan.CurrentCell = DgLaporan.Rows(e.RowIndex).Cells(0)
Call TotalKEMBALI()
Call TotalDENDA()
Call pembayaran()
Else
MsgBox(" " & LblNamaAgt.Text & " tidak meminjam kode Buku " & DgLaporan.Rows(e.RowIndex).Cells(0).Value & "")
End If
End If
RD.Close()
End Sub
【问题讨论】:
【参考方案1】:DATE
函数用于从字符串中提取日期,因此它希望您将参数传递给它。
如果您想获取今天的日期,请改用CURRENT_DATE
函数:
(CURRENT_DATE()-Tanggalpjm)+1
此外,您的代码容易受到 SQL 注入的影响。多年来一直不鼓励使用常规字符串连接来构建查询。看看如何使用SQL Parameters。
【讨论】:
现在错误 FUNCTION dbperpustakaan.IFF 不存在。然后我将其更改为 IF 然后出现错误:“字段列表”中的未知列“LMPINJAM” @نورأنيساء :我不知道LMPINJAM
应该是什么,所以我无法帮助您,但根据您问题中的图像,我会说错误消息是准确:没有名为LMPINJAM
的列。以上是关于如何更改语法 SQL 访问 phpmyadmin SQL/SQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章
phpMyAdmin 导入错误 #1064 “您的 Sql 语法有错误”
如何在 WAMP 中更改 phpmyadmin 的 root 密码?
将数据库导入 phpMyAdmin (MAMP) 时出现 SQL 语法错误