Board logo

標題: PHP - API SQL - insert into [打印本頁]

作者: X-Engineer    時間: 2019-4-13 14:53     標題: PHP - API SQL - insert into

有冇人知我錯咩呢。。。
HTML
  1.     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  2.     <script>
  3.     $(document).ready(function () {
  4.                   $('#wdb').submit(function(e){
  5.                       e.preventDefault(); //prevent normal submit!
  6.             if ($("#yourAnswer").val() != "" ){
  7.                           $.ajax({
  8.                                   type: 'GET',
  9.                                   url: 'wdb.php?username='+$('#username').val()&'question='+$('#question').val()&'answer='+$('#answer').val()&'yourAnswer='+$('#yourAnswer').val(),
  10.                                   dataType: 'json',
  11.                                   success: function (result) {
  12.                                       
  13.                                   }
  14.                           });
  15.             } else {
  16.                 $("#message").html("Please enter your answer!!");
  17.                 $("#tfUser").focus();
  18.             }
  19.                   });
  20.     });
  21.     </script>
複製代碼
api.php
  1. <?php
  2. extract($_GET);
  3. require_once 'connectdb.php';
  4. $sql = "SELECT * FROM QuestionsLog";
  5. $stmt = $pdo->prepare($sql);
  6. $stmt->execute([$username]);
  7. $result = array('error' => false);
  8. if($stmt->rowCount() <= 0){
  9.   $result['error'] = true;  
  10.         $sql = "INSERT INTO QuestionsLog (username, question, answer, yourAnswer) VALUES (?,?,?,?);";
  11.         $username = $_GET['$username'];
  12.         $question = $_GET['$question'];
  13.         $answer = $_GET['$answer'];
  14.         $yourAnswer = $_GET['$yourAnswer'];
  15.         $stmt = $pdo->prepare($sql);
  16.         $stmt->execute([$tfUser, $question, $answer, $yourAnswer]);
  17.         $result = array('error' => false);
  18. } else {
  19.   $arr = $stmt->fetch();
  20.   $result['username, question, answer, yourAnswer'] = $arr['username, question, answer, yourAnswer'];
  21. }
  22. echo json_encode($result);
複製代碼

作者: freefdhk    時間: 2019-4-13 15:22

利申 : 冇用開 PHP7 / SQLli . 唔係太熟.

不過你個 mysql 有 function procedure ?
SELECT * FROM QuestionsLog  未必識認你個  username
$stmt->execute([$username]);  
而且漏左 get method .

get / post method 應該一開始係頂到存起同檢查一下可能會安全d.
好似 sqlli 都會有 injection problem.
作者: Mr.K    時間: 2019-4-13 16:02

唔應該用extract _GET 咁寫,出黎做野咁寫比上司望倒我諗會比人炒多,如果我望倒都會
extract 左下面仲 $_GET['$username'],我估$_GET['$username']根本唔存在,應該係 $_GET['username'] 或 $username
作者: freefdhk    時間: 2019-4-13 16:45

唔應該用extract _GET 咁寫,出黎做野咁寫比上司望倒我諗會比人炒多,如果我望倒都會
extract 左下面仲 $_G ...
Mr.K 發表於 2019-4-13 16:02




    唔講都沒留意樓主用左個咁危險既FUNCTION.
POST/GET 推入去既野會強行直接OVERRIDE 現有既野.  
可能樓主係想整後門。

不過而家太多外行人讀 IT 再自動畢業 , 然後入行做 Programmer 咩都左抄右抄,
老闆要請n個新手去做一個PROJECT , 然後人工推低晒 .
作者: CVSDF    時間: 2019-4-13 18:18

唔明你d邏輯 ...
Select 唔到反而要插新 record 落去個 table 度 ?
呢 d 係咩玩法?
作者: freefdhk    時間: 2019-4-13 20:31

疑似新手寫的問答記錄系統.,
每個 USER只能答一次 , 但又吾係  每個user 每一題最多答一次.
不過神奇的是.  同一個 TABLE 記埋  答果陣既  問題、答案選擇.

其實應該 Questions 同 user answer 要分開 tables 去儲.
而 answer tables 應該 記錄 username , question_id , user_answer 就夠.

如果係功課來講 樓主比心機學習.
如果係工作來講 , 樓主....應該要再上多幾堂 database 課程.
作者: Mr.K    時間: 2019-4-13 23:15

唔講都沒留意樓主用左個咁危險既.
POST/GET 推入去既野會強行直接OVERRIDE 現有既野.  
可能樓主 ...
freefdhk 發表於 2019-4-13 16:45



    呢行係咁,太多呃飯食,但搞到真正做野既人,收入唔正常唔公平,我都做到灰諗緊轉行
作者: slxar    時間: 2019-4-13 23:33

  1. url: 'wdb.php?username='+$('#username').val()&'question='+$('#question').val()&'answer='+$('#answer').val()&'yourAnswer='+$('#yourAnswer').val()
複製代碼
呢段 JS 都有錯, 應該會出 ERROR, 同埋 GET 應該用黎拎 DATA 而唔係 SUBMIT DATA
作者: freefdhk    時間: 2019-4-13 23:46

呢行係咁,太多呃飯食,但搞到真正做野既人,收入唔正常唔公平,我都做到灰諗緊轉行 ...
Mr.K 發表於 2019-4-13 23:15



    IT 呢行自立門戶接JOB 會冇咁灰 .  吾岩價就最多吾接.
得張CERT 呃飯食既搞到平一平都請到人 ,  8K ~ 12K 都見過 .
D 腦細既心態用筆錢請 3個  呃飯食  都好過 20K~30K  請 1個 人工高但做到野.
不過可能佢地又會怕用 20K~30K  請左個都係  呃飯食 . ~哈哈

不過講真就係 , 其他工種 薪酬 同IT 差不多 , 又吾洗用腦諗野 .  做IT 打工係灰爆.
作者: Mr.K    時間: 2019-4-13 23:53

IT 呢行自立門戶接JOB 會冇咁灰 .  吾岩價就最多吾接.
得張CERT 呃飯食既搞到平一平都請到人 ,  8K ...
freefdhk 發表於 2019-4-13 23:46



    到左30-40k,D老闆就會無野做都R D野比佢做,一定要日夜好忙咁先心理平恒,如果好勁既好快解決倒問題又會諗會唔會請個平既都得呢
作者: freefdhk    時間: 2019-4-13 23:57

呢段 JS 都有錯, 應該會出 ERROR, 同埋 GET 應該用黎拎 DATA 而唔係 SUBMIT DATA
slxar 發表於 2019-4-13 23:33
  1. var username = $("#username").val();
  2. $.ajax({
  3.         type: "POST",  
  4.         url: "wdb.php?",
  5.         data: "username="+ username,
  6.         success: function(server_response){  
  7.                         //YOUR CODE
  8.         }
  9. });
複製代碼
幫手送段簡單既CODE 比樓主改行 POST, 吾好好似大陸咁咩都行GET去SUBMIT DATA~

作者: floatingcat    時間: 2019-4-16 20:57

本帖最後由 floatingcat 於 2019-4-16 21:02 編輯

呢段
url: 'wdb.php?username='+$('#username').val()&'question='+$('#question').val()&'answer='+$('#answer').val()&'yourAnswer='+$('#yourAnswer').val(),

應該係咁
url: 'wdb.php?username='+encodeURIComponent($('#username').val()) +'&question='+encodeURIComponent($('#question').val())+'&answer='+encodeURIComponent($('#answer').val())+'&yourAnswer='+encodeURIComponent($('#yourAnswer').val()),

留意番個 + 同 &, 唔好放錯
作者: xader    時間: 2019-4-17 19:46

本帖最後由 xader 於 2019-4-17 19:47 編輯

Ajax call 就係 wdb.php
  1.   url: 'wdb.php?username='+$('#username').val()&'question='+$('#question').val()&'answer='+$('#answer').val()&'yourAnswer='+$('#yourAnswer').val(),
複製代碼
但係 backend api 個  入口叫 api.php???
中間個 router 去左邊??
作者: X-Engineer    時間: 2019-4-19 17:32

Thank you everyone !!

不過,要澄清一下
其實小弟讀緊 夜校 High Diploma
VTC IVE - Information Communications and Technology in HD
呢個係功課。。。。。。

小弟冇做Programmer的資質,對programming冇咩興趣
純粹係為交巧課。。。。。。
係課程內容,冇計

同埋讀返書,只為有沙紙,可升上去
計劃讀埋Master就算。。。。。。
作者: X-Engineer    時間: 2019-4-19 17:33

疑似新手寫的問答記錄系統.,
每個 USER只能答一次 , 但又吾係  每個user 每一題最多答一次.
不過神奇的是 ...
freefdhk 發表於 2019-4-13 20:31



    Right..HaHa..
作者: X-Engineer    時間: 2019-4-19 17:36

IT 呢行自立門戶接JOB 會冇咁灰 .  吾岩價就最多吾接.
得張CERT 呃飯食既搞到平一平都請到人 ,  8K ...
freefdhk 發表於 2019-4-13 23:46



    Right, I'm in Infar, network and Deskside field
作者: carlkyo    時間: 2019-4-29 10:11

Thank you everyone !!

不過,要澄清一下
其實小弟讀緊 夜校 High Diploma
VTC IVE - Information Commun ...
X-Engineer 發表於 2019-4-19 17:32


hku space有讀9個月3萬幾既master
作者: gamezz    時間: 2019-5-9 16:06

回覆 14# X-Engineer


    HD 讀上去,唔係degree先咩?可以跳級讀master?
作者: freefdhk    時間: 2019-5-9 17:10

回覆  X-Engineer


    HD 讀上去,唔係degree先咩?可以跳級讀master?
gamezz 發表於 2019-5-9 16:06



    聽講MASTER 係可以直接私人簽發 .
我見有D保險業既人講 , 佢地公司可以出張 MASTER 證書比佢地.
前提係佢地未有大學學位都可以.





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2