首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“where子句”中未知列'xxx‘

问“where子句”中未知列'xxx‘
EN

Stack Overflow用户
提问于 2014-01-05 16:49:55
回答 4查看 1.4K关注 0票数 0

我正在构建一个搜索到我的网站,搜索词存储在一个数据库中。

这是我的密码

代码语言:javascript
复制
<?php
$search = $_GET["q"];
if ($search <= "") {
 }
else {
  $con = mysql_connect("localhost", "cl49-XXX", "XXX");
  if (!$con) {
    die('Could not connect: line 513 ' . mysql_error());
  }

mysql_select_db("cl49-XXX", $con) or die("Unable to select database"); 

$result = mysql_query("SELECT * FROM registrations WHERE 'rname' LIKE '%$search%'") or die('Error: Line 519 (' . mysql_error() . ')');

$num_rows = mysql_num_rows($result);   
 if ($num_rows=="0"){
  echo"<h4>&nbsp;&nbsp;&nbsp;&nbsp;No Results Found for <b>$search</b>. Please try a different search</h3>";
  }

  else { 
echo "<h3>$num_rows results found for <b> $search</b></h3><br /><br />";   
   }

如果我搜索名称"donna“(这个名称在DB中),就会得到错误

“where子句”中未知列“donna”

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-05 16:53:05

正如所有社区所言:不要使用mysql_函数,请尝试mysqli或PDO。

建议:逃避输入,防止注射等。

Do:$search = mysql_real_escape_string( $_GET["q"] );

并改变这一行

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM registrations WHERE `rname` LIKE '%". $search ."%'") or die('Error: Line 519 (' . mysql_error() . ')');

编辑(脚本改进).

mysql_num_rows返回一个整数值,那么,为什么要将它与字符串进行比较呢?

代码语言:javascript
复制
$num_rows = mysql_num_rows($result);   
 if (!$num_rows){

或者if ($num_rows == 0) ..。

票数 4
EN

Stack Overflow用户

发布于 2014-01-05 16:54:31

变化

代码语言:javascript
复制
mysql_query("SELECT * FROM registrations WHERE 'rname' LIKE '%$search%'")

至

代码语言:javascript
复制
mysql_query("SELECT * FROM `registrations` WHERE `rname` LIKE '%".$search."%'")
票数 1
EN

Stack Overflow用户

发布于 2014-01-05 16:54:03

假设表中的列名是rname

代码语言:javascript
复制
WHERE 'rname' LIKE 

应该是

代码语言:javascript
复制
WHERE rname LIKE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20936273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档