本文目錄一覽:
- 1、求教:tp5控制器引用模型報錯,提示類未找到Class ‘app\index\model\User’ not found
- 2、如何Mysql觸發器中拋出一個異常
- 3、thinkphp5 怎麼同時連接mysql和sqlserver 2種數據庫
- 4、tp5插入mysql數據,用param不能插入
- 5、用tp5連接mysql數據庫怎麼提示這個錯誤啊,應該怎麼解決啊
求教:tp5控制器引用模型報錯,提示類未找到Class ‘app\index\model\User’ not found
tp5控制器引用模型報錯,提示類未找到Class ‘app\index\model\User’ not found是使用錯誤造成的,解決方法為:
1、tp5下基本的應用, 模塊和視圖目錄的層級關係。
2、接下來需要在Index 控制器中,定義一個方法。
3、接下來需要在視圖目錄view中的對應關係。
4、在article.html中寫入內容,並保存即可,如圖所示,
如何Mysql觸發器中拋出一個異常
從Mysql 5.5 開始為我們提供了SIGNAL函數來實現這個功能。
[sql] view plain copy
CREATE TRIGGER `tg_order_create` AFTER INSERT ON `tp_order` FOR EACH ROW BEGIN
DECLARE msg varchar(200);
/*凍結金額*/
IF 2=NEW.condition THEN
UPDATE `tp_user` SET `frozen_amount`=`frozen_amount`+NEW.amount WHERE `id`=NEW.uid AND `amount`-`frozen_amount` NEW.amount;
/*如果餘額不足,產生一個錯誤*/
IF ROW_COUNT() 1 THEN
set msg = “用戶餘額不足以完成支付.”;
SIGNAL SQLSTATE ‘HY000’ SET MESSAGE_TEXT = msg;
END IF;
/*扣除金額*/
ELSEIF 3=NEW.condition THEN
UPDATE `tp_user` SET `amount`=`amount`-NEW.amount WHERE `id`=NEW.uid AND `amount`-`frozen_amount` NEW.amount;
/*如果餘額不足,產生一個錯誤*/
IF ROW_COUNT() 1 THEN
set msg = “用戶餘額不足以完成支付.”;
SIGNAL SQLSTATE ‘HY000’ SET MESSAGE_TEXT = msg;
END IF;
END IF;
END;
這裡這條觸發器的功能是庫存操作,當庫存足夠的時候 減少庫存,否則 拋出一個異常並報告商品庫存不足:
[sql] view plain copy
CREATE TRIGGER `TG_order_detail_dec_stock` BEFORE INSERT ON `tp_order_detail` FOR EACH ROW BEGIN
DECLARE msg VARCHAR(200);
UPDATE `tp_stock` SET `num`=`num`-NEW.num WHERE `goods_id`=NEW.goods_id AND `mid`=NEW.mid AND `num`=NEW.num;
IF ROW_COUNT() 1 THEN
SELECT CONCAT(`name`, ‘ 庫存不足.’) INTO msg FROM `tp_goods` WHERE `id`=NEW.goods_id;
SIGNAL SQLSTATE ‘HY000’ SET MESSAGE_TEXT = msg;
END IF;
END;
在PHP端的處理(注:使用ThinkPHP框架):
[php] view plain copy
//前面省略若干行….
try {
if (false === ($order_pk = $tbl_order-add($order))) {
$tbl-rollback();
echo json_encode(array(‘success’ = -1, ‘message’ = “創建訂單失敗!.”), JSON_UNESCAPED_UNICODE);
return;
}
}catch (\PDOException $e){
$errInfo=$e-errorInfo[2];
$tbl-rollback();
echo json_encode(array(‘success’ = -1, ‘message’ = “創建訂單失敗!,{$errInfo}”), JSON_UNESCAPED_UNICODE);
return;
}
//後面省略若干行….
thinkphp5 怎麼同時連接mysql和sqlserver 2種數據庫
到微軟官網下載文件,網址:百度搜索選擇“SQLSRV20.EXE”,點擊”next”(下一步),進行下載右鍵解壓到當前目錄,把這兩個文件拷貝到PHP目錄下的ext目錄下下圖是拷貝後的結果,請參考,不要拷錯了。打開php-ini在文件中設置,加上下面兩行代碼,如下圖下面這裡設置為On,保存,重啟服務,如下圖修改thinkphp配置文件,如下圖thinkphp控制器文件,隨便查個sqlserver表中的數據,看是否能成功打印,如果成功打印,那麼證明數據庫連接成功。如果不能正確打印,那麼看報錯提示,在按照提示解決問題。
tp5插入mysql數據,用param不能插入
MySQL安裝的根目錄下有一個配置文件my.ini,添加sql_mode屬性:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES。即可
MySQL 查看數據表結構以及詳情的方法:
一、 查看錶結構
下面三個是我們最常用的查看數據表結構的語句:
1、desc table
2、describe table
3、show columns from tbale
如果你在控制台一次輸入,就會發現這三個語句所打印的結果是一樣的。
比如我在本地study_test_db數控中嘗試查看info表的結構,結果如下:
二、查看建表語句詳情
1、語句:show create table info
2、這裡直接回車的話,結果可能比較亂,如果需要的話,可以再後面 ; 處替換為\G,這樣結果就會豎直打印,看起來更清晰明白。
3、比如這裡我還是以info表為例:
三、通過mysql中自帶的information_schema數據庫,查看錶信息
可以通過查詢tables和colums表來查看具體的數據表信息
其中:
1、TABLES表:提供了關於數據庫中的表的信息(包括視圖)。詳細表述了某個表屬於哪個schema,表類型,表引擎,創建時間等信息。是show tables from schemaname的結果取之此表。
2、COLUMNS表:提供了表中的列信息。詳細表述了某張表的所有列以及每個列的信息。是show columns from schemaname.tablename的結果取之此表。
用tp5連接mysql數據庫怎麼提示這個錯誤啊,應該怎麼解決啊
上面提示錯誤的mysql用戶跟你所提供的配置文件的用戶名都不一樣,檢查一下你是否還有別的配置文件,tp5針對不同模塊可以有不同的數據庫配置,你把他們全都找出來複查一遍試試,希望對你有幫助
原創文章,作者:TQOD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/143344.html