php图片保存入mysql数据库失败解决办法
代码如下 | 复制代码 |
require 'class/db.php'; $img = fread($fp, filesize($fileName)); $db->execute("insert db2.testimg (`img`) values ('$img') ;"); |
报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`?绶q?仳!????1丶>,Mo?'^WZ4in??T春??????U?楹\?' at line 1
代码如下 | 复制代码 |
$img = fread($fp, filesize($fileName)); |
继续报错
各种搜索,百度里的结果都是addslashes,要不就是addslashes也没有的。真是扯淡啊
base64_decode
$img = base64_encode($img);
插入成功。图片文件17.0k
出来进行base64_decode ,显示正常
找到个16进制的办法
$img = bin2hex($img);
有效,输出不用解密 。存入数据库很大 25K。比base64还坑爹呢。
再找。
后来,后来。发现phpmyadmin直接上传的图片文件可以用文件比base64的小。文件12.8k
翻phpmyadmin 源代码
common.lib.php文件183有个神奇的函数
代码如下 | 复制代码 |
function PMA_sqlAddslashes($a_string = '', $is_like = false, $crlf = false, $php_code = false) |
文件大小12.8K 和phpmyadmin的一样大。
例
前台(image.html):
代码如下 | 复制代码 |
<html> |
后台处理(upimage.php):
代码如下 | 复制代码 |
<?php |
显示图片(disimage.php):
代码如下 | 复制代码 |
<?php |
结论
PMA_sqlAddslashes好用 文件12.8k 和原来图片一样大
bin2hex 16进制 好用文件25K
base64_encode 好用,出来的文件需要base64_decode 17K
addslashes 不好用,继续报错(注明:在某些windows机器上addslashes好用)
#将所有备份文件备份到指定的目录,如/backup/mysql_data_backup
代码如下 | 复制代码 |
mkdir /backup/mysql_data_backup -p |
添加一行任务
代码如下 | 复制代码 |
0 13 * * * /usr/bin/php /backup/mysql_data_backup/backmysql.php |
表示在每天晚上0点13分用php执行备份命令
代码如下 | 复制代码 |
#!/usr/bin/php < ?php //产生保存目录 $path = dirname(__FILE__) . '/' .date("Ym"); $filename = sprintf("%s/%s.sql.gz", $path, date("YmdHis")); if(!is_dir($path)) mkdir($path); //导出并压缩所有数据库 $cmd = sprintf("/usr/bin/mysqldump -uroot -ppassword --all-databases | /bin/gzip > %s", $filename); echo "backuping...n"; `$cmd`; echo "backup done.n"; |
注意,这里只是计划信息处理了,如果要执行php文件我们需要自己写一个即可。
本文章来给大家介绍关于redis访问权限控制,密码设置基本步骤,有需要了解的朋友不防进入参考。redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护。
1.比较安全的办法是采用绑定IP的方式来进行控制。
代码如下 | 复制代码 |
bind 127.0.0.1 |
表示仅仅允许通过127.0.0.1这个ip地址进行访问。那么其实只有自己才能访问自己了,其他机器都无法访问他。
这段命令要去redis.conf里修改。
这里请注意
我们常用的启动方式src/redis-server
改为
代码如下 | 复制代码 |
src/redis-server redis.conf |
因为它需要加载配置文件。
这个方法有一点不太好,我难免有多台机器访问一个redis服务
2.设置密码,以提供远程登陆
代码如下 | 复制代码 |
redis.conf 找到 requirepass |
写上
requirepass yourpassword设置密码以后发现可以登陆,但是无法执行命令了。
代码如下 | 复制代码 |
src/redis-cli -h 192.168.1.121 keys * (error) ERR operation not permitted |
授权命令
auth 123456登陆带密码方式
./redis-cli -h 192.168.1.121 -a hzhutid由于redis并发能力极强,仅仅搞密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。(密码在 conf文件里是明文,所以不用担心自己会忘记)
本文章来给各位php入门者详细关于php连接数据库的实例代码,这里主要讲到了入门级的mysql连接代码到高级的封装数据库连接类,希望此文章对各位朋友所有帮助。连接MySQL数据库的两种方法:
(1)利用PHP的数据库函数连接
此方式是最常用的一种方式.
这里主要用到四个数据库函数:
mysql_connect () 建立与MySQL服务器的连接。
mysql_select_db ():选择MySQL服务器中的数据库供以后的数据查询操作query处理。
mysql_query ():送出query字符串以帮助MySQL做相关的处理或执行。
mysql_fetch_row ():用来将查询结果result单行移到数组变量中。数组的索引是数字
索引,第一个索引值是0。
(2)通过ODBC连接
PHP通过ODBC连接MySQL数据库主要用到四个函数:
Odbc_connect ():用来同ODBC数据源建立连接。
Odbc_do ():用来在建立连接之后执行数据库查询。
Odbc_result():用于取得当前记录行中某个字段的值。
Odbc_fetch_row ():用来把查询结果保存到数组,每个数组元素对应一条记录。
我们先来看PHP的数据库函数连接 方法实例
连接到一个 MySQL 数据库
在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。
在 PHP 中,这个任务通过 mysql_connect() 函数完成。
语法
mysql_connect(servername,username,password);参数 描述
servername 可选。规定要连接的服务器。默认是 "localhost:3306"。
username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
password 可选。规定登录所用的密码。默认是 ""。
代码如下 | 复制代码 |
<?php |
面向对象mysqli(详细教程)
代码如下 | 复制代码 |
|
pdo连接mysql(详细教程)
代码如下 | 复制代码 |
|
然后我们还可以使用ODBC连接数据库
代码如下 | 复制代码 |
|
mysql数据连接类
代码如下 | 复制代码 |
class Database { function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) { /* SQL:Select() 返回为false无结果 */ function Select($table, $columns, $condition = 1) { /* SQL:GetRows() 返回查询的记录总数 */ function GetRows($table, $condition = 1) { /* SQL:Insert() */ function Insert($table, $columns, $values) { /* SQL:Update() */ function Update($table, $setings, $condition) { /* SQL:Delete */ function Delete($table, $condition) { /* Halt():error message */ function Halt($msg) { switch ($db->dbType) { |
友情提示
如果出现连接mysql数据库中文乱码我们可以在连接数据库查询之前加上mysql_query("set names utf8"); 如果你是gbk就使用gbk编编码了
短语密码是phpmyadmin为了防止多个登录时出现混乱了,所以要求我们配置一下config.sample.inc.php中的 $cfg[\'blowfish_secret\'] 短语密码,下面我来给大家介绍解决办法。配置的phpmyadmin3.2.4用来管理MySQL数据库,登陆进入以后,页面下面提示:配置文件现在需要一个短语密码。
解决方法:编辑phpmyadmin目录里的config.inc.php文件,找到:$cfg['blowfish_secret'] = ' '; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
在$cfg['blowfish_secret'] = ' ';后面两个单引号内随便输入一些字符,以加强密码安全即可。
具体解决方法
1、将 phpMyAdmin/libraries/config.default.php中的
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = ''; |
改成
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = '111cn.net'; |
(注:其中的'111cn.net′为随意的字符)
2、在phpMyAdmin目录中,打开config.sample.inc.php,18行
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = ''; |
成
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = '111cn.net'; |
(注:其中的'111cn.net′为随意的字符)
这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25php中json_decode()和json_encode()用法与中文不显示解决办法
本文章介绍了关于php中json_decode()和json_encode()用法与中文不显示解决办法,有需要的朋友可以参考一下下。 php中json_decode()和json_encode() 1.json_decode(...2016-11-25- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 在php中我们如果要导入excel数据我们通常会使用phpexcel插件了,但是有朋友会发与使用phpexcel导出数据出现身份证后四位是0000情况了,下面我们就来看解决办法。 最...2016-11-25
- 401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 今天用CPAN安装Term::ReadLine,报了个这样的错误 Going to read /root/.cpan/sources/modules/03modlist.data.gz Can't locate object method "data" via package "C...2016-11-25
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- 下面给大家介绍phpstudy访问速度慢的解决办法。1、修改mysql数据库链接地址为ip地址127.0.0.1。2、使用最新版本,这个坑了我好久时间。下面一段内容是关于phpstudy启动失败的解决办法。php5.3、5.4和apache都是用vc9编...2015-11-24
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24