如何更改语法 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?

phpMyAdmin 导入错误 #1064 “您的 Sql 语法有错误”

如何在 WAMP 中更改 phpmyadmin 的 root 密码?

将数据库导入 phpMyAdmin (MAMP) 时出现 SQL 语法错误

phpmyadmin 3.3.9 配置文件中的更改不允许我访问 phpmyadmin

phpmyadmin 事件语法错误,而它适用于 sql 命令