【问题标题】:How to compare HTML input with mysql database using PHP? [closed]如何使用 PHP 将 HTML 输入与 mysql 数据库进行比较? [关闭]
【发布时间】:2014-04-24 18:30:51
【问题描述】:
$query = "
SELECT N.N_ID
     , P.P_ID
     , P.P_F_NAME
     , P.P_L_NAME
     , P.P_ADDR
     , NP.VISIT_TIME
     , N.N_LN_NAME
     , N.N_SPEC
     , M.M_DESC
     , NM.M_DOSE 
  FROM NURSE N
     , patient P
     , n_visit_p NP
     , MEDIC M
     , n_provide_m NM 
 WHERE N.N_ID  = NP.N_ID 
   AND P.P_ID  = NP.P_ID 
   AND M.M_ID  = NM.M_ID 
   AND NP.N_ID = NM.N_ID 
   AND NP.P_ID = NM.P_ID
     , **N.N_ID='{$_GET["nurse_id"]}'**;
     ");

 $result = mysqli_query($con,$query);

这是我的代码的一部分,我尝试通过 $_GET 比较 HTML 输入...。 “nurse_id”是 HTML 中的表单名称,我通过它接收输入。 我什至用$N_ID= $_GET["nurse_id"]"尝试过 但它不工作任何一种方式...... 我得到的结果是所有护士的详细信息,但不是特定选定的护士......

【问题讨论】:

  • 可爱的SQL injection attack 漏洞。坐下来放松一下。很快就会有人破坏您的服务器并使您的问题变得毫无意义。
  • 'moot' - 我不喜欢这个词;北美意思几乎是英文意思的反义词:-(
  • @Strawberry - 谢谢,现在我正在研究 moot 的各种定义;)

标签: php html mysql database


【解决方案1】:

看来您需要使用AND 而不是逗号。

"... AND NP.P_ID=NM.P_ID AND N.N_ID='".$_GET['nurse_id']."';");

如果护士 id 是整数,则不需要单引号:

"... AND NP.P_ID=NM.P_ID AND N.N_ID=".$_GET['nurse_id'].";");

强烈建议您在使用 $_GET 值查询数据库之前对其进行清理。更好的是,使用prepared statements

【讨论】:

  • 谢谢!!它现在工作!
猜你喜欢
  • 2013-05-13
  • 2023-04-07
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
相关资源
最近更新 更多