Session变量是不能在MySQL中陈述工作

我试图使用session变量( $_SESSION['asc_id']它拥有像“AS0027001”的一些值)的SQL语句,但它不工作。 当我硬编码的值, 是提供的结果。

任何人都可以请大家指正。

MySQL查询是不工作

$asc_id = $_SESSION['asc_id']; $rs = mysql_query('select asc_lastname, asc_firstname, asc_middlename, lname_fname_dob from issio_asc_workers where asc_user_type = 31 and asc_id = "$asc_id" and lname_fname_dob like "' . mysql_real_escape_string($_REQUEST['term']) . '%" order by lname_fname_dob asc limit 0,10', $dblink);

MySQL查询这是工作

$rs = mysql_query('select asc_lastname, asc_firstname, asc_middlename, lname_fname_dob from issio_asc_workers where asc_user_type = 31 and asc_id = "AS0027001" and lname_fname_dob like "' . mysql_real_escape_string($_REQUEST['term']) . '%" order by lname_fname_dob asc limit 0,10', $dblink);

--------------解决方案-------------

当您打印字符串,这将是明显的。 当这个问题被重新格式化离开SQL可读的,问题是显而易见的。 (用于调试SQL语句的第一个规则是“打印字符串”。第二个规则,这使得它更容易遵守第一,始终把SQL语句转换为你传递给SQL函数的字符串。)

您可以使用.符号嵌入请求term字符串中; 你不使用嵌入$asc_id到字符串。 您还应该使用mysql_real_escape_string()的会话ID值,以防止SQL注入攻击。

变量替换只有双引号字符串,而不是单引号内的那些作品。 换句话说,你应该做的;

$rs = mysql_query("select .... and asc_id = '$asc_id' and ... limit 0,10", $dblink);

顺便说一句,你做确保值并不包括可能导致SQL注入的任何字符,对不对? 否则,你应该使用mysql_real_escape_string使将其插入查询之前肯定。

首先打印变量$ asc_id。 如果什么都不显示,会话不可用。 在这种情况下,你错过了在session_start()在当前执行的页面顶部。

从SQL查询,你不能代替单引号字符内的变量的值。 使用 。 符号与变量或使用双引号字符串混合字符串值。 我更喜欢第一个。

为了排除故障,最简单的方法是印刷变量值。 由上可知,你就会明白什么缺失。

谢谢

尝试这个。 从您添加的评论,我修改了它这样的

session_start(); //add this if you did not do it yet

$asc_id = $_SESSION['asc_id'];

$rs = mysql_query("select asc_lastname, asc_firstname, asc_middlename, lname_fname_dob
from issio_asc_workers where asc_user_type = 31
and asc_id = '$asc_id'
and lname_fname_dob like '".
mysql_real_escape_string($_REQUEST['term']) .
"%' order by lname_fname_dob asc limit 0,10", $dblink);

分类:php 时间:2012-01-01 人气:34
本文关键词: PHP和MySQL
分享到:

相关文章

  • 无法加载文件或程序集“MySql.Data,版本= 6.2.2.0 2012-01-01

    我工作的桌面应用程序用C#和数据库的MySQL. 当我在我的机器上安装的安装程序,它工作正常,但是当我在其他机器上安装它的给予下列异常时,尝试访问数据库. 我使用MySQL.Data.dll与MySQL进行通信. 无法加载文件或程序集"MySql.Data,版本= 6.2.2.0,文化=中性公钥= c5687fc88969c44d"或它的某一个依赖. 该系统找不到指定的文件. 和MySql.Data.dll在存在于计划 ​​项目的文件夹中的文件文件的文件夹 其实,当我从它在程序文件夹中

  • 寻找一个良好的MySQL的编辑器为Ubuntu 2012-01-01

    作为滑稽,因为它是最拿手的MySQL的编辑是基于Windows. 我找了Ubuntu的一个工具(US $ 400顶),可以: 自动完成表和字段名称+保留关键字. 语法着色. 内联排内容编辑. 从一台主机复制表/数据库的其他. 我认为,基于最好的Windows是SQLyog的,但它是葡萄酒的工作是一场噩梦. --------------解决方案------------- 我强烈建议DBVisualizer中. 这是一个Java应用程序,运行在Linux,Mac OS X和Windows. MySQ

  • 自动完成在游戏中使用来自MySQL的数据? 2012-01-01

    我使用的发挥工作的一个项目! 框架和我目前被困试图找出如何连接一个基本的jQuery自动完成使用MySQL数据库作为数据源并从中检索信息. 有没有人尝试过​​呢? 谢谢. --------------解决方案------------- 随着jQueryUI的自动完成,你只需要设置一个输入字段一类特殊的"自动完成": <input type="text" class="ui-state-default autocomplete" name=&

  • 我应该加入第四个MySQL表,或使用IN子句? 2012-01-01

    下面是一个MySQL查询我工作的一个页面,Hase的用户状态帖子(像Twitter的方式),对这些岗位的用户照片和姓名的意见,看看谁张贴的状态后或评论 从另一个查询是绕一百万行的大表产生的用户ID的IN子句在列表中. 我应该尝试加入该表到下面的查询或得到这些结果单独就像我现在做的和我们这些如下所示为ID的一串? SELECT s.statusid, s.userid, s.statustype, s.subject, s.datetime, c.commentid, c.statusid, c.

  • 问题在PHP从MySQL中检索图像 2012-01-01

    我上传图片到mysql数据库之前已经使用了下面的代码 编码之前,我也做 $content = addslashes($content); $content = base64_encode($content); 在那之后我已经测试数据库中它是进入精细图像. 但是,每当我尝试下载它保存很好的文件系统相同的图像,但从来没有让我查看. 至于,它给我的不正确的图像文件. 为什么会这样 $file_data= $this->get_attachment($id); $content = $file_data

  • 忽略使用mysqldump在MySQL数据库备份“若干意见” 2012-01-01

    我需要忽略在我的数据库中的所有视图,并使用mysqldump采取备份. 目前我使用下面的选项. --ignore-table=view1 --ignore-table=view2 --ignore-table=view3 有什么办法把备份省略所有视图,而不指定所有"视图"的名称? --------------解决方案------------- 试试这个查询: SELECT CONCAT('mysqldump -u username -ppassword -h host [some op

  • MySQL的字符串分割返回所有单词中的所有行 2012-01-01

    我有一个存储过程作为记录在:http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/使用MySQL的子串()函数来得到字符串中的每个单词. 我要的是以下查询返回每个出现的句子表的每一行字. 目前,我需要通过位置1,2,3等进行过滤,但我不知道一个句子可能会多少单词都有,所以这是非常低效的. 任何想法如何让所有词语的句子都在一个查询? SELECT DISTINCT SPLIT_STR(`SentenceText`, " &q

  • MYSQL ROWNUMBER插入表 2012-01-01

    我想找到一个分组的行号,并插入到进一步的查询表. 这就是我想出的代码,但它不工作. 我的意思是不工作单独查询确实插入. 请建议周围的工作.我试图把这个代码在存储过程中但返回一点儿也不工作too.The误差子查询返回多个1行. set @type =''; set @row_number =1; insert into newtable(type,actualdeparturetime,actualarrivaltime,dummy_1,dummy_2,row_number) select typ

  • 在MySQL中两套分隔数的范围内寻找共同的价值观 2012-01-01

    最根本的问题是,我想找到MySQL的两组数字之间的数值在共同的数量. 鉴于两个字段,每个都包含不同的组分类逗号分隔的数字(其中可能包含每个高达100元),使用MySQL你怎么能计算出有多少数字是通用的套?: Field 1: 1,3,75,4502 Field 2: 1,10,20,4502,4965,10022 Answer: 2. (1 and 4502 are common to both sets) 我可以在MySQL中找到的唯一相关的功能是FIND_IN_SET ,它可以让你知道,如果

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.128 (s). 11 q(s)