php向Mysqphp curl 上传图片片错误

编程开发子分类PHP向MySQL数据库上传文件的问题_百度知道
PHP向MySQL数据库上传文件的问题
下面的代码分别用于创建mysql表和上传文件保存到mysql数据库创建mysql表:上传文件并保存到mysql中,通过insert语句插入
其他类似问题
为您推荐:
提问者采纳
input type=&&的name值;
echo &直接用原文件名称存入数据库比较方便使用 $photo=$_FILES[&#39,这是WEB服务器默认的临时目录;就好了;改成$photo=$_FILES[' name=&quot,需要处理的数据保存在超级全局数组$_FILES中;0){ $name=$_FILES['user&quot,$conn) or die(&photo'file&;photo&formname'][&#39:任何与文件上传相关的错误代码注;/reg,完整的代码应该增加限制上传文件大小;database&
$fp=fopen($photo:formname就是& action=&不能选择数据库;body&&插入数据失败;form-data'br&gt.php文件;]把html&;):文件的MIME类型;formname'insert into tablename (html&&#47。在PHP脚本中;localhost&error'input type=&]);/post&$name'显示相关数值;/ value=&&][&#39:文件的字节大小$_FILES['],该文件将保存在Web服务器上的临时目录中。$_FILES['multipart/size')
or die(&r&quot,该文件将被删除;;上传&quot?&&gt,'print_r($_FILES['];formname'&lt、复制或更改文件名称!; name=&],$conn) or die(&body&photo&photo'From J:&$photo'formname'
echo &/]['][']['formname&#39,photo) values('&;))); mysql_close($conn);/& mysql_query($sql:text&#47.L ;tmp_name'&photo'][&#39.mysql_error());msgform&quot.html文件;error&#39,&;&]['file&quot:文件在WEB服务器中临时存储的位置$_FILES['&#47.php&photo&#39,&quot.php中的第6行$photo=$_POST['不能连接数据库服务器;;input type=&&lt?php$conn=mysql_connect(&quot,例如;];name');];]&gif$_FILES[&#39:&submit&]);
mysql_select_db(&password&/photo';上传成功&form&gt:用户系统中的原文件名称$_FILES['photo'&上传出错&quot!你可以尝试用以下代码;$photo' $sql=&测试时使用if($_FILES[&#39!当文件上传时; /!input:&]['formname&#39,filesize('form name=&type'
$data=addslashes(fread($ enctype='; method=& }&#47.mysql_error());tmp_name&#39。如果在脚本执行完成之前不移动;plain或image&#47,在PHP脚本中你可以尝试用print_r($_FILES[']:&name'tmp_name&#39.mysql_error());];;];&#47!,&&lt:&][&#39
提问者评价
其他2条回答
r&quot,&),&quot,没有就读不到;r&只表示能读;这句不对$fp=fopen($photo,它不会自己去创建的
mysql数据库的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁导入10M的sql文件导入到快3M的时候报500错误,我把memory_limit改为512M就不报错正常导入了。请问在不改memory_limit和再分割sql文件(这个是已经分割过的)前提下下面的代码有什么问题,该怎么优化?
* 恢复文件
* @param string $filename
* @return boolean
public static function restoreData() {
function_exists('set_time_limit') && set_time_limit(0); //防止备份数据过程超时
$time = time();
if (empty($_GET['sqlPre']))
die(json_encode(array("status" =& 0, "info" =& "错误的请求")));
//获取sql文件前缀
$sqlPre = $_GET['sqlPre'];
$handle = opendir(DatabaseBackDir);
$sqlFiles = array();
while ($file = readdir($handle)) {
//获取以$sqlPre为前缀的所有sql文件
if (preg_match('#\.sql$#i', $file) && preg_match('#' . $sqlPre . '#i', $file))
$sqlFiles[] = $
closedir($handle);
if (count($sqlFiles) == 0)
die(json_encode(array("status" =& 0, "info" =& "错误的请求,不存在对应的SQL文件")));
foreach ($sqlFiles as $sqlFile) {
$file = DatabaseBackDir . $sqlF
if (!file_exists($file))
$file = fopen($file, "r");
$sql = "";
while (!feof($file)) {
$tem = trim(fgets($file));
//过滤掉空行、以#号注释掉的行、以--注释掉的行
if (empty($tem) || $tem[0] == '#' || ($tem[0] == '-' && $tem[1] == '-'))
//统计一行字符串的长度
$end = (int) (strlen($tem) - 1);
//检测一行字符串最后有个字符是否是分号,是分号则一条sql语句结束,否则sql还有一部分在下一行中
if ($tem[$end] == ";") {
$M-&query($sql);
$sql = NULL;
$tem = NULL;
fclose($file);
$sql = NULL;
$time = time() - $
echo json_encode(array("status" =& 1, "info" =& "导入成功,耗时:{$time} 秒钟"));
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
浏览了一遍代码,没有发现特别严重的问题,怀疑某一行就是超大,直接导致你的$sql变量超过内存限制,这种情况只能通过增加memory limit解决
还有可能是内容里面存在没有预料到的格式,导致解析错误,生成巨大的$sql
你可以在每次循环内打印一下strlen($sql)验证一下
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (2138) 次基于PHP读取TXT文件向数据库导入海量数据的方法
字体:[ ] 类型:转载 时间:
本篇文章小编为大家介绍,基于PHP读取TXT文件向数据库导入海量数据的方法。需要的朋友参考下
有一个TXT文件,包含了10万条记录,格式如下:
列1&&&&&& 列2&&&&&& 列3&& 列4&& 列5a&&& &&& 0&&& 0&&& adductive#1 adducting#1 adducent#1a&&& &&& 0&&& 0&&& nascent#1a&&& &&& 0&&& 0&&& emerging#2 emergent#2a&&& &&& 0.25&&& 0&&& dissilient#1
……………………后面有10万条………………
需求是要导入数据库中,数据表的结构为
word_id&& 自动增量word&&&& 【adductive#1 adducting#1 adducent#1】这一个TXT记录要转换为3个SQL记录value&&&& =第三列-第四列;如果=0,则此条记录略过不插入数据表 代码如下:&?php&&& $file = 'words.txt';//10W条记录的TXT源文件&&& $lines = file_get_contents($file); &&& ini_set('memory_limit', '-1');//不要限制Mem大小,否则会报错 &&& $line=explode("\n",$lines);&&& $i=0;&&& $sql="INSERT INTO words_sentiment (word,senti_type,senti_value,word_type) VALUES ";&&& foreach($line as $key =&$li)&&& {&&&&&&& $arr=explode("&",$li); &&&&&&& $senti_value=$arr[2]-$arr[3];&&&&&&& if($senti_value!=0)&&&&&&& {&&&&&&&&&&& if($i&=20000&&$i&25000)//分批次导入,避免失败&&&&&&&&&&& {&&&&&&&&&&&& $mm=explode(" ",$arr[4]);&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& foreach($mm as $m)&& //【adductive#1 adducting#1 adducent#1】这一个TXT记录要转换为3个SQL记录&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&& $nn=explode("#",$m);&&&&&&&&&&&&&&&&&&&& $word=$nn[0];&&&&&&&&&&&&&&&&&&&& $sql.="(\"$word\",1,$senti_value,2),";//这个地方要注意到是 word有可能包含单引号(如jack's),因此我们要用双引号来包含word(注意转义)&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&$i++;&&&&&&& }&&&&&&&& &&& }&&& //echo $i;&&& $sql=substr($sql,0,-1);//去掉最后一个逗号&&& //echo $&&& file_put_contents('.txt', $sql);& //批量导入数据库,5000条一次,大概需要40秒的样子;一次导入太多max_execution_time会不够,导致失败&&&& ?&1,海量数据导入到时候,要注意PHP的一些限制,可以临时调整一下,否则会报错 Allowed memory size of
bytes exhausted (tried to allocate 16 bytes)
2,PHP操作TXT文件
file_get_contents()
file_put_contents()
3,海量导入的时候,最好分批次导入,失败的几率小一些
4,海量导入之前,脚本一定要多次测试无误再使用,比如用100条数据来测试
5,导入之后,如果PHP的mem_limit还是不够的话,程序仍然跑不起来
(建议用修改php.ini的方式来提高mem_limit,而不是用临时的语句)
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 php curl 上传图片 的文章

 

随机推荐