jquery-file-upload 的php mysql插入問(wèn)題
Jun 23, 2016 pm 01:51 PM 最近用jquery-file-upload?來(lái)改善網(wǎng)站上傳的體驗(yàn)
https://github.com/blueimp/jQuery-File-Upload/wiki/PHP-MySQL-database-integration
上傳時(shí)按照他的參考文檔,立馬就完成了,一開(kāi)始也按照他的sql?架構(gòu)先試試
結(jié)果上傳后,也能成功插入,json傳回頁(yè)面一切正常!
但問(wèn)題來(lái)了,他的sql?架構(gòu)...有個(gè)叫url
但作者好像在PHP的SQL中沒(méi)有處理
那我就改改吧,....
先新增了一些基本配置
$dir = $_COOKIE["uid"].'/'.date("Y").'/'.date("m").'/'.date("d").'/';$dirUP = "../../../att/".$dir;$dirLink = $dir;$options=array( 'upload_dir' => $dirUP, 'upload_url' => $dirLink, 'delete_type' => 'POST', 'db_host' => 'localhost', 'db_user' => 'root', 'db_pass' => '*****', 'db_name' => '*****', 'db_table' => 'files');
應(yīng)該就是這段了....
我嘗試多次,加入url字段都不成功 [原本的文檔代碼]
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, $index = null, $content_range = null) { $file = parent::handle_file_upload( $uploaded_file, $name, $size, $type, $error, $index, $content_range ); if (empty($file->error)) { $sql = 'INSERT INTO `'.$this->options['db_table'] .'` (`name`, `size`, `type`, `title`, `description`)' .' VALUES (?, ?, ?, ? , ?)'; $query = $this->db->prepare($sql); $query->bind_param( 'sisss', $file->name, $file->size, $file->type, $file->title, $file->description ); $query->execute(); $file->id = $this->db->insert_id; } return $file; }
都給我顯示:
Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in
這是什么意思,說(shuō)我的數(shù)量有問(wèn)題? 是指我加少了嗎?
我已經(jīng)改成...這樣,5處的type字段也都加了url也說(shuō)是數(shù)量問(wèn)題?
protected function handle_file_upload($uploaded_file, $name, $size, $type,$url, $error, $index = null, $content_range = null) { $file = parent::handle_file_upload( $uploaded_file, $name, $size, $type,$url, $error, $index, $content_range ); if (empty($file->error)) { $sql = 'INSERT INTO `'.$this->options['db_table'] .'` (`name`, `size`, `type`, `url`, `title`, `description`)' .' VALUES (?, ?, ?, ?,? , ?)'; $query = $this->db->prepare($sql); $query->bind_param( 'sisss', $file->name, $file->size, $file->type, $file->url, $file->title, $file->description ); $query->execute(); $file->id = $this->db->insert_id; } return $file; }
我需要保存成
$url?=?$_COOKIE["uid"].'/'.date("Y").'/'.date("m").'/'.date("d").'/'.?filename
要怎么改??直接用$file->url就可以嗎?
另外...因?yàn)檫@玩意,還弄到一個(gè)append取值問(wèn)題,熟jq的朋友也可以去這幫幫小弟吧
http://bbs.csdn.net/topics/390862894
回復(fù)討論(解決方案)
警告:mysqli_stmt::bind_param():在類(lèi)型定義字符串不匹配的綁定變量的元素個(gè)數(shù)
這還不清楚嗎?
$query->bind_param(
????????????????' sisss',?//怎么只有?5?個(gè)類(lèi)型聲明?
????????????????$file->name,?//1
????????????????$file->size,?//2
????????????????$file->type,?//3
????????????????$file->url,?//4
????????????????$file->title,//5
????????????????$file->description?//6?共6個(gè)
????????????);
警告:mysqli_stmt::bind_param():在類(lèi)型定義字符串不匹配的綁定變量的元素個(gè)數(shù)
這還不清楚嗎?
$query->bind_param(
????????????????' sisss',?//怎么只有?5?個(gè)類(lèi)型聲明?
????????????????$file->name,?//1
????????????????$file->size,?//2
????????????????$file->type,?//3
????????????????$file->url,?//4
????????????????$file->title,//5
????????????????$file->description?//6?共6個(gè)
????????????);
喔...原來(lái)這個(gè)問(wèn)題
已成功解決了!
以前用完mysql_query后就轉(zhuǎn)用pdo了,沒(méi)用過(guò)mysqli,PDO好像就沒(méi)怎么提過(guò)這寫(xiě)法
謝謝,學(xué)習(xí)了

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

std::chrono在C 中用於處理時(shí)間,包括獲取當(dāng)前時(shí)間、測(cè)量執(zhí)行時(shí)間、操作時(shí)間點(diǎn)與持續(xù)時(shí)間及格式化解析時(shí)間。 1.獲取當(dāng)前時(shí)間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但係統(tǒng)時(shí)鐘可能不單調(diào);2.測(cè)量執(zhí)行時(shí)間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,並通過(guò)duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時(shí)間點(diǎn)(time_point)和持續(xù)時(shí)間(duration)可相互操作,但需注意單位兼容性和時(shí)鐘紀(jì)元(epoch)

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

CTE是MySQL中用於簡(jiǎn)化複雜查詢(xún)的臨時(shí)結(jié)果集。它在當(dāng)前查詢(xún)中可多次引用,提升代碼可讀性和維護(hù)性。例如,在orders表中查找每個(gè)用戶(hù)的最新訂單時(shí),可通過(guò)CTE先獲取每個(gè)用戶(hù)的最新訂單日期,再與原表關(guān)聯(lián)獲取完整記錄。相比子查詢(xún),CTE結(jié)構(gòu)更清晰,邏輯更易調(diào)試。使用技巧包括明確別名、串聯(lián)多個(gè)CTE以及利用遞歸CTE處理樹(shù)形數(shù)據(jù)。掌握CTE能使SQL更優(yōu)雅高效。

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

使用PHP預(yù)處理語(yǔ)句執(zhí)行帶有IN子句的查詢(xún)時(shí),1.需根據(jù)數(shù)組長(zhǎng)度動(dòng)態(tài)生成佔(zhàn)位符;2.使用PDO時(shí)可直接傳入數(shù)組,用array_values確保索引連續(xù);3.使用mysqli時(shí)需構(gòu)造類(lèi)型字符串並綁定參數(shù),注意展開(kāi)數(shù)組的方式及版本兼容性;4.避免拼接SQL、處理空數(shù)組和確保數(shù)據(jù)類(lèi)型匹配。具體做法是:先用implode與array_fill生成佔(zhàn)位符,再依擴(kuò)展特性綁定參數(shù),從而安全執(zhí)行IN查詢(xún)。

insetTingUpmysqltables,選擇theStherightDatatatPesisionCrucialForeffifeffifeffifeffificeFifeffifeFrifeFifeScalible

header函數(shù)跳轉(zhuǎn)失敗原因及解決方法:1.header前已有輸出,需檢查並移除所有前置輸出或使用ob_start()緩衝;2.未加exit導(dǎo)致後續(xù)代碼干擾,應(yīng)在跳轉(zhuǎn)後立即添加exit或die;3.路徑錯(cuò)誤應(yīng)使用絕對(duì)路徑或動(dòng)態(tài)拼接確保正確;4.服務(wù)器配置或緩存干擾可嘗試清除緩存或更換環(huán)境測(cè)試。

避免“undefinedindex”錯(cuò)誤的關(guān)鍵方法有三:首先,使用isset()檢查數(shù)組鍵是否存在並確保值不為null,適用於大多數(shù)常規(guī)場(chǎng)景;其次,使用array_key_exists()僅判斷鍵是否存在,適用於需要區(qū)分鍵不存在和值為null的情況;最後,使用空合併運(yùn)算符??(PHP7 )簡(jiǎn)潔地設(shè)置默認(rèn)值,推薦用於現(xiàn)代PHP項(xiàng)目,同時(shí)注意表單字段名拼寫(xiě)、謹(jǐn)慎使用extract()及遍歷前檢查數(shù)組非空以進(jìn)一步規(guī)避風(fēng)險(xiǎn)。
