当前位置: 首页 > 知识库问答 >
问题:

where子句中的未知列“Sunny”

翁建弼
2023-03-14
  <body>
    <%  String name=session.getAttribute("user").toString();    %>

 <br>

  <%@ page import="java.sql.*" %>
  <%
   try
  {
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   java.sql.Connection 
   con=DriverManager.getConnection
   ("jdbc:mysql://localhost:3306/pbl","root","");
   Statement st=con.createStatement();
   String q="select pcode ,pname,pprice from car where us="+name;
   ResultSet rs = st.executeQuery(q) ;
 %>

错误:java.SQL.sqlsyntaxerrorexception:您的SQL语法中有一个错误;请查看与您的MariaDB服务器版本相对应的手册,以便在第1行'by name'附近使用正确的语法

共有1个答案

邵毅
2023-03-14

我猜问题出在这行字符串q=“select pcode,pname,pprice from car where us=”+name;

是的,因为名称(显然是sunny)不在SQL引号中,所以它看起来像一个列引用。

永远不要使用字符串连接向SQL查询添加值。改用准备好的语句:

PreparedStatement ps = con.prepareStatement("select pcode ,pname,pprice from car where us = ?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
    null
 类似资料:
  • 问题内容: 我正在一个已经存在的cakephp 1.3项目中,我需要向数据库中添加一个新表。我的控制器中有这个: 这给了我这个错误: 这是它正在尝试创建的查询: 显然我的控制器代码是错误的,但是我不确定如何将Email表与ShootingPlacement关联起来。我认为我的模型是正确的。到目前为止,如果我有这个: 它将从Shooting,ShootingPlacement和Person中检索行,

  • 在多供应商网站上工作。当商店/供应商用户想登录时突然得到这个错误没有问题普通用户这里有两种类型用户一种是供应商或商店老板/另一种普通客户当供应商想登录时得到这个错误。但正常用户没有问题面临的登录。添加新列,但问题是继续SQL完整性错误。 这是登录控制器。 登录控制器的详细信息 路线 车间管理控制员 商店管理模式 **店铺模型** 错误

  • 问题内容: 我有一个名为表有三列:,,。 我正在尝试创建一个查询,该查询将根据昵称返回余额,并且在使用此查询时遇到错误: 有人可以在这里看到我做错了吗? 问题答案: 反引号(`)用于标识符,例如表名,列名等。单引号(’)用于字符串文字。 您想做: 或者,更明确地说: 如果没有歧义的可能性,并且表/列名称没有特殊字符或空格,则可以将`设置为off。 这是一些干燥且难以阅读的文档:http : //d

  • 为什么查询给出这个错误: #1054-“WHERE子句”中得列“NOPL”未知?

  • 我正试图在一个过程中运行以下代码。它是过程中之后的第一行代码 当我在phpmyadmin SQL环境中运行它时,它工作得很好。但当我调用该过程时,我得到的错误是: “WHERE子句”中得列“DeleteRequestsInitial.Email”未知 我看了很多关于“未知列”错误的文章,但没有一个建议的解决办法似乎对我有效。