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);
複製代碼

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

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

get / post method 應該一開始係頂到存起同檢查一下可能會安全d.
好似 sqlli 都會有 injection problem.

TOP

唔應該用extract _GET 咁寫,出黎做野咁寫比上司望倒我諗會比人炒多,如果我望倒都會
extract 左下面仲 $_GET['$username'],我估$_GET['$username']根本唔存在,應該係 $_GET['username'] 或 $username

TOP

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




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

不過而家太多外行人讀 IT 再自動畢業 , 然後入行做 Programmer 咩都左抄右抄,
老闆要請n個新手去做一個PROJECT , 然後人工推低晒 .

TOP

唔明你d邏輯 ...
Select 唔到反而要插新 record 落去個 table 度 ?
呢 d 係咩玩法?

TOP

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

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

如果係功課來講 樓主比心機學習.
如果係工作來講 , 樓主....應該要再上多幾堂 database 課程.

TOP

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



    呢行係咁,太多呃飯食,但搞到真正做野既人,收入唔正常唔公平,我都做到灰諗緊轉行

TOP

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

TOP

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



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

不過講真就係 , 其他工種 薪酬 同IT 差不多 , 又吾洗用腦諗野 .  做IT 打工係灰爆.

TOP

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



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

TOP