php数据库查询字符串 php 查找字符串

php处理post字符串进行mysql数据库查询$users=mysqli_real_escape_string($link,$users);注释掉这行或修改$users=mysqli_real_escape_string($users);
PHP查询MYSQL的内容,并输出结果1、用navicat新建一个数据库database1 。
2、在database1数据库中新建一个表table2 。
3、在table2中添加新的数据,新建一个名称为mysql_query的数据库 。
4、在页面中用mysql_connect 函数与数据库建立连接 。
5、用mysql_select_db函数选择要查询的数据库 。
6、添加一个查询 table2表的查询语句“$sql=select * from table2“ 。
7、将查询语句$sql添加到查询数据库函数mysql_query中,返回值赋值给变量query 。
8、最后将mysql_query 。php文件在浏览器中打开,查看查询到数据库中的内容的结果 。
thinkphp 数据库查询怎么查?thinkphp如何查询数据库?
数据库查询
ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作 。
查询条件可以用于CURD等任何操作,作为where方法的参数传入即可 。
ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全 。
查询方式
一、使用字符串作为查询条件
这是最传统的方式,但是安全性不高,例如:
1
2
$User = M("User"); // 实例化User对象
$User-where('type=1 AND status=1')-select();
最后生成的SQL语句是
1
SELECT * FROM think_user WHERE type=1 AND status=1
二、使用数组作为查询条件
1
2
3
4
5
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查询条件传入查询方法
$User-where($condition)-select();
最后生成的SQL语句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:
1
2
3
4
5
6
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
// 把查询条件传入查询方法
$User-where($condition)-select();
最后生成的SQL语句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
三、使用对象方式来查询 (这里以stdClass内置对象为例)
1
2
3
4
5
6
$User = M("User"); // 实例化User对象
// 定义查询条件
$condition = new stdClass();
【php数据库查询字符串 php 查找字符串】$condition-name = 'thinkphp';
$condition-status= 1;
$User-where($condition)-select();
最后生成的SQL语句和上面一样
1
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
使用对象方式查询和使用数组查询的效果是相同的 , 并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法 。
表达式查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:
1
$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
1
2
3
4
$map['id']= array('eq',100);id = 100;
$map['id']= array('egt',100);id = 100
$map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
本文来自ThinkPHP框架技术文章栏目:
以上就是thinkphp如何查询数据库的详细内容,更多请关注php中文网其它相关文章!
php查询字符串里面是否有某个字符PHP中如何判断一个字符串中是否有某个字符php数据库查询字符串,如下php数据库查询字符串:
PHP语言是一个功能强大php数据库查询字符串的嵌入式HTML脚本语言php数据库查询字符串,它的易用性让许多程序员选择使用 。PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断.也可以通过explode函数的作用写一个判断函数 。
1. strstr: 返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含
代码如下:
?php
/*如手册上的举例*/
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain;
// prints @example.com
?
2. stristr: 它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.
3. strpos: 返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好.
PHP判断字符串的包含代码如下:
$str= 'abc';
$needle= 'a';
$pos = strpos($str, $needle);
4. 用explode进行判断
PHP判断字符串的包含代码如下:
function checkstr($str){
$needle = "a";//判断是否包含a这个字符
$tmparray = explode($needle,$str);
if(count($tmparray)1){
return true;
} else{
return false;
}
}
如何自动转义字符串在PHP SQL查询在处理MySQL和GET、POST的数据时,常常要对数据的引号进行转义操作 。
PHP中有三个设置可以实现自动对’(单引号),”(双引号),\(反斜线)和 NULL 字符转转 。
php称之为魔术引号,这三项设置分别是
magic_quotes_gpc
影响到 HTTP 请求数据(GET , POST 和 COOKIE) 。不能在运行时改变 。在 PHP 中默认值为 on 。
这个开启时 , 通过GET,POST,COOKIE传递的数据会自动被转义 。
如 test.php?id=abc'de"f
echo $_GET['id'];#会得到 abc\'de\"f
magic_quotes_gpc=On; 这个开启了,对写入数据库是没有影响的,比如 上面的$_GET['id']写到数据库里面,依然是 abc'de"f ,
相反,如果magic_quotes_gpc=Off; 那么字符中要带有引号(不管单引号还是双引号) , 直接写入mysql都会直接变成空白
但是,如果你将它写入文档,而非mysql 。那么它将是 abc\'de\"f
magic_quotes_runtime
如果打开的话 , 大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义 。该选项可在运行的时改变 , 在 PHP 中的默认值为 off 。
magic_quotes_sybase
如果打开的话 , 将会使用单引号对单引号进行转义而非反斜线 。此选项会完全覆盖 magic_quotes_gpc 。如果同时打开两个选项的话,单引号将会被转义成 ” 。而双引号、反斜线 和 NULL 字符将不会进行转义 。
我表单内容本来是:img alt=”" width=”400″ height=”300″ src=https://www.04ip.com/post/”/Upfiles/201105/images/1306657040.jpg” /
img alt=\”\” width=\”400\” height=\”300\” src=https://www.04ip.com/”/Upfiles/201105/images/1306657040.jpg/” /
对策一:修改php.ini文件(修改php.ini这个方法就不说了,大家可以google下)
对策二:把转义的给取消了
第一步:找到你提交的数据比如$_POST['content'],将其改成$content=stripslashes($_POST['content']);
第二步:以后在使用$POST['content']的地方都换成$content
第三步:提交到数据库 , 数据库储存还是正常的:img alt=”" width=”400″ height=”300″ src=https://www.04ip.com/post/”/Upfiles/201105/images/1306657040.jpg” /读出来又成了
img alt=\”\” width=\”400\” height=\”300\” src=https://www.04ip.com/”/Upfiles/201105/images/1306657040.jpg/” /(这个应该知道怎么解决了吧?要不我再罗嗦下吧)
第四步:将数据库读取的内容再用stripslashes()过滤一下 。
stripslashes()这个函数 ,删除由addslashes()函数添加的反斜杠 。用于清理从数据库或 HTML 表单中取回的数据

PHP页面中如果不希望出现以下情况:
单引号被转义为 \'
双引号被转义为 \"
那么可以进行如下设置以防止:
在php.ini中设置:magic_quotes_gpc = Off)
总结如下:
1. 对于magic_quotes_gpc=on的情况 ,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示 。
如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠 。
2. 对于magic_quotes_gpc=off 的情况
必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行 。
php 查询字符串内是否含有某个字符strpos — 查找字符串首次出现的位置
$mystring = 'abc';
$findme= 'a';
$pos = strpos($mystring, $findme);
// 注意这里使用的是 === 。简单的 == 不能像我们期待的那样工作,
// 因为 'a' 是第 0 位置上的(第一个)字符 。
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
关于php数据库查询字符串和php 查找字符串的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读