疯子的紫梦's 学习窝

php sql里面语句单引号里面的变量是可以读取的

$name = '张三';

"select * from table where name ='$name'";

"select * from table where name ='".$name."'";

两个的查询结果是一样的,也就是说SQL语句中的单引号里面的变量也是可以读出来的

php性能效率优化

        1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;

  2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;

  3.优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作;

  4.尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);

  5.循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?);

  6.多维数组尽量不要循环嵌套赋值;

  7.在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;

  8.foreach效率更高,尽量用foreach代替while和for循环;

  9.用单引号替代双引号引用字符串;

  10.“用i+=1代替i=i+1。符合c/c++的习惯,效率还高”;

  11.对global变量,应该用完就unset()掉

  12.在多重嵌套循环中,如有可能,应当将最长的循环放在内层,最短循环放在外层,这样就可以减少cpu跨切循环层的次数,从而优化程序性能。

PHP服务器时间的修改

刚学PHP的人应该会碰到服务器的时间和本地时间是不一样的.都是格林威治标准时间.

解决的方法有两种:
1.在PHP.ini里面找到date.timezon
删除这一行,将它改成
date_default_timezone_set(PRC) 

2.在程序前面加上date_default_timezone_set(PRC)
示例:

 

<?php
date_default_timezone_set(PRC);
echo date(H:i jS F Y);
?> 

 

 建议使用第二种方法!

AJAX实现用户注册检验

reg.html页面
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>This Is K-Make</title>
<style type="text/css">
body{
    font-size:12px;
    text-align:center;
}
.text{
    width:180px;
    height:12px;
}
p{
    width:600px;
    height:20px;
    line-height:20px;
    text-align:left;
}
p label{
    display:block;
    width:80px;
    height:20px;
    line-height:20px;
    float:left;
    text-align:right;
}
p span{
    margin-left:10px;
}
</style>
</head>
<body>
<script language="javascript">
function CreateXmlHttpRequest(){
    var xmlHttp;
    if(window.ActiveXObject){
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }else if(window.XMLHttpRequest){
        xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
}

function CheckName(){
    var name = document.getElementById('name'); //获取用户名文本框
    var span = document.getElementById('name_info'); //获取用于显示结果的span标记
    if(name.value.length <= 4){
        span.style.color = '#ff0000'; //设置span标记内的字体颜色为红色
        span.innerHTML = '用户名长度不能少于4个字符!'; //span标记内容
        return false;
    }
    var xmlHttp = CreateXmlHttpRequest();//创建异步请求对象
    var time = new Date().getTime();
    var url = 'reg.php?act=reg&name=' + name.value.toLowerCase() + '&tmp=' + time;//构造出请求地址
    xmlHttp.open("GET",url,true); //建立一个异步请求
    /*这里我们使用GET方式请求
      POST方式的请求基本差不多,朋友们自己试试如果不行,在下面给我留言*/
    xmlHttp.onreadystatechange = function(){ //监视请求状态
        span.style.color = '#ff9900';
        span.innerHTML = '查询中,请稍候!';
        if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
            if(xmlHttp.ResponseText.indexOf('no') != -1){ //如果服务器返回的信息中有no
                span.style.color = '#ff0000'; //设置span标记颜色为红色
                span.innerHTML = '用户名[' + name.value + ']已经被别的用户使用!';
            }else{//如果返回信息中没有no
                span.style.color = '#000000';//设置颜色为黑色
                span.innerHTML = '用户名[' + name.value + ']可以使用!';
            }
            return true;
            delete xmlHttp; //删除请求对象
        }
    }
    xmlHttp.send(null); //发送请求
}
</script>

<form method="post" action="reg.php">
<p><label>用户名:</label><input type="text" class="text" id="name" name="user" onblur="CheckName()" /><span id="name_info"></span></p>
<p><label>密码:</label><input type="password" class="text" /></p>
<p><label> </label><input type="submit" value="注册" /></p>
</form>
</body>
</html>

 

reg.php 页面

 

if( $_GET['act'] == 'reg')
  {
    include("mysql_class.php");
    $user=$_GET[name];
         
   
    $sql = "SELECT `user` FROM `guest` WHERE `user` ='$user'";
    $query=$db->query($sql);
    $result=$db->fetch_row($query);
   
    if($result!='')
    {
        echo "no";
    }
                     else
                     {
                        echo "yes";
                      }
   
    }
 

javascript中简单的一句代码,实现删除前的确认对话框

<td class="list"><a href="boardedit.asp?boardid=<%=rs("boardid")%>">修改</a>/<a href="boarddel.asp?boardid=<%=rs("boardid")%>" onclick='return confirm("确认删除码?")'>删除</a></td>

 

但不知道为什么把其中的单引号换成双引号就会没有效果??

 

 

谁知道告诉我一下