html連接mysql數據庫PHP html連接mysql數據庫PHP后文件名是什么

【html連接mysql數據庫PHP html連接mysql數據庫PHP后文件名是什么】


文章插圖
html連接mysql數據庫PHP html連接mysql數據庫PHP后文件名是什么

文章插圖
將mock模擬數據插入到Mysql數據庫
有時候,我們測試網站時需要大量的模擬數據,但是php并沒有提供生成模擬數據的工具,這時候我想到mockjs是可以生成模擬數據的,那能不能把Mockjs生成的模擬數據填充到數據庫中呢?
于是開始動手:
例如mysql數據庫表是如下字段:
于是查閱mock文檔,建立一個文件mock.php,模擬了以下數據:
//mock.php//先引入mockjs和jquery(后面會用到)<script src="http://www.mnbkw.com/static/assets/vendors/mockjs/mock.js?x83982"></script><script src="http://www.mnbkw.com/static/assets/vendors/jquery/jquery.js?x83982"></script><script>const login = Mock.mock({'list|5':[{ //模擬生成一個數組,數組長度為5,內容為5個對象,對象的具體內容如下'id':null,'author':[email protected]', //生成中文姓名'email':[email protected]', //生成郵箱'created':[email protected]("yyyy-MM-dd HH:mm:ss")', //生成時間'content':[email protected](1)', //生成一段中文段落'status|1':['approved','rejected','held'], //三者選其一'post_id|+1':1, //從1開始,步長為1,增加數字'parent_id|1':[1,2,3,4] //生成1,2,3,4其中一個}]})生成后的數據是一個對象,下一步就是將數據插入到mysql數據庫了,要插入數據庫,是不能用靜態頁面完成的,這里我們新建一個sql.php頁面,這里我會考慮,不是已經生成了模擬數據嗎,還新建頁面干什么,直接在mock.php中把獲取數據轉化成mysql字符串,執行數據庫的增加操作不就行了嗎?
一開始我也是這么想的,但是發現真正操作的時候,有個問題,那就是mockjs生成的數據是在js里面生成的,代碼在<script>標簽里面,我怎么把這個數據取出來放到php標簽里呢?換句話說,就是怎么在php中取得js里面的變量?
只有在mock.php向sql.php提交數據才可以實現,提交的數據就是我們模擬的數據,然后通過sql.php連接數據庫,將數據插入到數據庫 。
這里要注意,提交的數據必須為json格式的字符串,不能直接提交對象或者數組,不然sql.php是很難直接處理js對象的 。
//mock.php接上面//JSON.parse(jsonstr); //可以將json字符串轉換成json對象//JSON.stringify(jsonobj); //可以將json對象轉換成json對符串data=http://www.mnbkw.com/jxjc/176342/JSON.stringify(login.list); $.post('/sql.php',{comments:data},function(res){ //以post方式提交數據document.write(res) //打印返回值到頁面,不寫也可以})</script>下面寫sql.php
<?phpheader('Content-type:text/html;charset=utf8');//連接數據庫define('DB_USER','root');define('DB_HOST','localhost');const DB_PASS='root';const DB_NAME='root';$con=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME) or die('數據庫連接失敗');mysqli_query($con,'set names utf8');//封裝sql執行函數function xiu_execute($sql){global $con; // 獲取數據庫連接的全局變量$query = mysqli_query($con, $sql); //執行數據庫操作sql語句if (!$query) {// 查詢失敗return false;}// mysqli_affected_rows() 函數返回前一次 MySQL 操作(SELECT、INSERT、UPDATE、REPLACE、DELETE)所影響的記錄行數 。return mysqli_affected_rows($con);?}?/** * PHP json_encode() 用于對變量進行 JSON 編碼,該函數如果執行成功返回 JSON 數據,否則返回 FALSE。* PHP json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]]) * 函數用于對 JSON 格式的字符串進行解碼,并轉換為 PHP 變量,assoc: 當該參數為 TRUE 時,將返回數組,FALSE 時返回對象 。*/if(!empty($_POST['comments'])){ //判斷接收的數據是否為空$comments=json_decode($_POST['comments'],true) ; //將接收到的json字符串數據解碼為關聯數組$sql="insert into comments values"; //定義初始查詢語句foreach($comments as $comment){ //遍歷解碼后的關聯數組,獲取每一項每個字段的數據$author=$comment['author'];$email=$comment['email'];$created=$comment['created'];$content=$comment['content'];$status=$comment['status'];$post_id=$comment['post_id'];$parent_id=$comment['parent_id'];// 將得到的數據拼接,插入多條sql語句$sql.="(null,'{$author}','{$email}','{$created}','{$content}','{$status}',{$post_id},{$parent_id}),";}$sql=substr($sql,0,-1).";"; //將拼接完后的最后一個逗號刪除并加上冒號execute($sql); //執行插入操作echo $sql; //返回拼接后的字符串,用以調試是否出錯!將這兩個文件放在php服務器根目錄上,訪問mock.php,即可批量插入數據,如果要插入更多數據,只需要將
‘list|5’中的5修改為你想要插入的數據條數即可!