我把PHP升级到了5.2.5版本以后,以前写的PDO程序总是报错SQLSTATE[HY000]: General error: 2053 ,我查了很久才找到问题的解决办法。  这样的问题只会发生在两条SQL连续请求的时候,如下面的例子:
引用
$s = $db->query("SELECT * FROM test ORDER BY poledrugie;"); var_dump($s->fetchAll()); $s = $db->query("SELECT * FROM test ORDER BY poletrzecie;"); var_dump($s->fetchAll());
这样就会报错的。两种修改方法: 1.将第二个SQL的句柄换成$s1.
引用
$s = $db->query("SELECT * FROM test ORDER BY poledrugie;"); var_dump($s->fetchAll()); $s1 = $db->query("SELECT * FROM test ORDER BY poletrzecie;"); var_dump($s1->fetchAll());
2.在第二个SQK前,将$s清空。
引用
$s = $db->query("SELECT * FROM test ORDER BY poledrugie;"); var_dump($s->fetchAll()); $s = ''; $s = $db->query("SELECT * FROM test ORDER BY poletrzecie;"); var_dump($s->fetchAll());
  其实可以得出一个结论,如果两个PDO请求赋值给同一个句柄,那么第二个句柄不会被覆盖掉。所以必须我们手动覆盖一次。   以上文章为ArthurXF倾情奉献,谢谢支持! 现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。 PHP培训招生简章
Tags: ,
  这两天升级MYSQL后,当访问系统权限表时,出警告,说需要使用mysql_fix_privilege_tables来升级。查了一下网上的信息,有很多人都在问这个脚本文件在哪里啊?等等。其实这个脚本本身就是命令了。可以直接执行。
  这个命令默认使用root用户,但是有很多系统root帐号已经被删除了。就要使用参数了。具体的如下:
引用
mysql_fix_privilege_tables --user=aaa --verbose --password=123


  我不知道别人的能不能成功,总之我运行上面的命令总是报错。
引用
This script updates all the mysql privilege tables to be usable by
the current version of MySQL

Got a failure from command:
cat /usr/local/share/mysql/mysql_fix_privilege_tables.sql | /usr/local/bin/mysql --no-defaults --force --user=root --host=localhost --database=mysql
Please check the above output and try again.

Running the script with the --verbose option may give you some information
of what went wrong.

If you get an 'Access denied' error, you should run this script again and
give the MySQL root user password as an argument with the --password= option


  后来研究了一下手册,只要用下面的命令就可以轻松搞定。还让我浪费2小时。希望大家以后不会犯我同样的错误了。
引用
mysql_upgrade --user=aaa --password

  ArthurXF倾情奉献,希望大家多多支持!

现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。
PHP培训招生简章
Tags:
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]