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

php处理post字符串进行mysql数据库查询$users=mysqli_real_escape_string($link,$users);注释掉这行或修改$users=mysqli_real_escape_string($users);
如何自动转义字符串在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查询:要求从数据库apexlog中的apexlog表(字段分别为:id,time,username , serverinfo)中查询以下是我编写的代码,经测试运行正常,但不知是否满足你的要求:
form action="test1.php" method="post"
label for="id"id号:/label
input type="text" name="id" id="id" title="id" /
label for="time"time:/label
input type="text" name="time" id="time" /
label for="username"username:/label
input type="text" name="username" id="username" /
label for="serverinfo"serverinfo:/label
input type="text" name="serverinfo" id="serverinfo" /
br /br /
input type="submit" title="submit" /
/form
?php
//对提交的内容进行简单去空格的处理
$s1 = trim($_POST['id']);
$s2 = trim($_POST['time']);
$s3 = trim($_POST['username']);
$s4 = trim($_POST['serverinfo']);
//组合查询条件
$s1 = ($s1!='')?" and id='$s1'":"";
$s2 = ($s2!='')?" and time='$s2'":"";
$s3 = ($s3!='')?" and username='$s3'":"";
$s4 = ($s4!='')?" and severinfo='$s4'":"";
$s = $s1.$s2.$s3.$s4;
//生成最后的sql语句 , 进行查询
$sql = ($s == '')?"select * from table":"select * from table where (1=1) $s";
$db = new mysqli('localhost','root','test','apexlog');
$db-query($sql);
?
php 字符串查找和替换第一步php字符串查询数据库:先是否存在
“ddd=”
字符串
如果不存在php字符串查询数据库,抛出某个值(这个值自己设定) 。。。
如果存在,
第二步php字符串查询数据库:截取
“ddd=”
后的字符串,也就是实例的“33jjj=xx”,
和保存前面的字符串
“afda?abc=12ddd=”
第三步:截取第一个
“”
前面的字符串 , 并保存字符串
“jjj=xx”
如果字符串为空或不存在,抛出某个值(这个值自己设定) 。。。
如果存在拼接新的字符串

“afda?abc=12ddd=” (替换的数据例如:50) “jjj=xx”
并返回某个值(这个值还是自己设定) 。。。
然后你可以根据抛出的值来判断时候存在替换的字符串,今天没空 。。。要是需要的话以后做个例子给你php字符串查询数据库?。。?
php字符串查找PHP字符串查找的函数的函数比较多,这里演示下常用几种使用方法:
?php
//1.strstr()函数:用于获取一个指定字符串在另一个字符串中首次出现的位置开始,直到结束的子字符串,
//如果执行成功,则返回剩余字符串;否则返回false 。
echo strstr("zhidao.baidu.com","baidu");
//baidu.com
//2. strpos()函数:返回字符串在另一个字符串中第一次出现的位置 。如果没有找到字符串,则返回false 。
$str = 'hello,iambaiduzhidao!';
$find = 'zhidao';
if(strpos($str,$find)!==false){
echo '字符串包含:zhidao!';
}else{
echo '字符串不包含:zhidao!';
}
//输出结果:字符串包含:zhidao!
//返回字符串zhidao在str中第一次出现的位置
echo strpos($str,$find);
//14
?
【php字符串查询数据库 php查询数据表】php字符串查询数据库的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于php查询数据表、php字符串查询数据库的信息别忘了在本站进行查找喔 。

    推荐阅读