使用JQ的ajax如果将数据类型dataType=“json”,那么就一直报出字符串错误,结果直接去除了dataType后就可以传送数据进去了。
var data_json = {"t":cnt2};
$.ajax({
url:"index.php",
type:"POST",
async:true,
data:data_json,
success:function(){
//alert("success!");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
complete: function(XMLHttpRequest, textStatus) {
this; // 调用本次AJAX请求时传递的options参数
}
});
结果发现自己傻逼了,ajax数据传送是固定的格式不用规定格式,反而如果是php传到ajax那里才需要规定返回到ajax的数据类型dataType。看到版主大大的话才恍然大悟。
(2)单引号和双引号在转义中的区别
(3)数组的赋值问题
在使用php数组的时候,遇到了一个问题。那就是如果使用了$arr[]=值的时候,一直用的话会导致里面的值一直加,这个就相当于push的操作一样,所以要重新使用,那么就要清空了再放东西进去,使用unset函数就可以了。
(4)判断空值
See how php parses different values. $var is the variable.
$var = NULL "" 0 "0" 1
strlen($var) = 0 0 1 1 1
is_null($var) = TRUE FALSE FALSE FALSE FALSE
$var == "" = TRUE TRUE TRUE FALSE FALSE
!$var = TRUE TRUE TRUE TRUE FALSE
!is_null($var) = FALSE TRUE TRUE TRUE TRUE
$var != "" = FALSE FALSE FALSE TRUE TRUE
$var = FALSE FALSE FALSE FALSE TRUE
Peace!
(5)在命令行和浏览器中的错误
在使用浏览器的时候我们可以使用$var=[]这种形式来表示一个数组,而在命令行中用这种形式是会报错的,所以不能使用这种方式定义数组,要使用Array这个来表示。之后就不会出现错误了。
(6)MySQLi 预处理语句
在使用这个预处理的语句的时候,一直显示类型出错,之后看了官方文档才知道,原来bind_param这个函数的第一个参数是要规定?是什么类型的,类型表如下:
Zeichen | Beschreibung |
---|---|
i | die entsprechende Variable hat den Typ integer |
d | die entsprechende Variable hat den Typ double |
s | die entsprechende Variable hat den Typ string |
b | die entsprechende Variable ist ein BLOB und wird paketweise geschickt |
(7)php的pdo的bindParam使用上的坑点
在使用pdo的bindParams上,结合foreach来进行每个值的绑定。结果发现绑定后的值都是最后的值,完全不是一一对应关系。之后查资料发现,原来bindParam第二个参数是引用,所以每次的绑定其实都是同一个变量的引用,所以一直都会是最后面那个值,所以要解决这个问题可以使用bindValue或者是在foreach($array as $k=>&$v)这样子赋值。
(8)php的pdo错误处理
在使用pdo的时候,很多错误无法显示,因为没有使用正确的错误显示方式而已。这里面有三种方法:
-
PDO::ERRMODE_SILENT
此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 PDOStatement::errorCode() 或 PDOStatement::errorInfo() 方法。如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方法。
-
PDO::ERRMODE_WARNING
除设置错误码之外,PDO 还将发出一条传统的 E_WARNING 信息。如果只是想看看发生了什么问题且不中断应用程序的流程,那么此设置在调试/测试期间非常有用。
-
PDO::ERRMODE_EXCEPTION
除设置错误码之外,PDO 还将抛出一个 PDOException 异常类并设置它的属性来反射错误码和错误信息。此设置在调试期间也非常有用,因为它会有效地放大脚本中产生错误的点,从而可以非常快速地指出代码中有问题的潜在区域(记住:如果异常导致脚本终止,则事务被自动回滚)。
异常模式另一个非常有用的是,相比传统 PHP 风格的警告,可以更清晰地构建自己的错误处理,而且比起静默模式和显式地检查每种数据库调用的返回值,异常模式需要的代码/嵌套更少。
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit;
}
------------------------------持续更新-----------------------------------------