【问题标题】:Geeting data from post in PHP and insert into table [closed]从 PHP 中的帖子获取数据并插入表中[关闭]
【发布时间】:2012-03-22 06:44:10
【问题描述】:

我正在使用 php 从 iphone 获取数据,但是当我在表中插入发布数据时,它给出了错误

   mysql_select_db("emriphone", $con);

   $providernpi=$_POST['ProviderNPI'];
  $patienid=$_POST['PatientID'];
  $fileurl=$_POST['FileURL'];
 $filetype=$_POST['FileTYPE'];
 $datasynid=$_POST['DataSynID'];





$query = "INSERT into AppointmentDataSync      (ProviderNPI,PatientID,FileURL,FileType,DataSyncID) VALUES('$providernpi','$patientid','$fileurl','$filetype','$datasynid')"

 $con = mysql_query($query,$con);
$cnt  = mysql_num_rows($con);
echo($providernpi)
  ?>

【问题讨论】:

  • 它给出了什么错误?
  • 尝试使用 isset 或 if 检查 POST 参数。
  • 语法错误,在 /home/content/i/h/u/ihus235/html/cs/emrapp/ 中出现意外的 T_VARIABLE
  • 我必须加入声音:什么错误??关于如何构建查询:这不是一个好主意,它很容易发生 sql 注入!
  • 我看不到数据中的 $=$_POST['DataSynID']; ;;良好的代码格式也可能有助于更轻松地阅读代码,从而更轻松地识别问题,一目了然......

标签: php


【解决方案1】:

我想你的查询语句会是这样的

$query = "INSERT into AppointmentDataSync      (ProviderNPI,PatientID,FileURL,FileType,DataSyncID) VALUES('".$providernpi."','".$patientid."','".$fileurl."','".$filetype."','".$datasynid."')";

编辑

mysql_query($query);
printf("Records inserted: %d\n", mysql_affected_rows());

【讨论】:

  • 我已经这样做了,但现在给出了另一个错误 mysql_num_rows():提供的参数不是一个
  • mysql_num_rows() 命令仅对返回实际结果集的 SELECT 或 SHOW 等语句有效。要检索受 INSERT、UPDATE、REPLACE 或 DELETE 查询影响的行数,请使用 mysql_affected_rows()。请看http://www.php.net/manual/en/function.mysql-affected-rows.php
  • 如果我给出 mysql_affected_rows(): 提供的参数不是有效的 MySQL-Link 那么它再次给出这个错误
  • 现在显示插入的记录
  • 谢谢它对我有用 问题是它为提供者 npi 和患者 ID 获取 0 值,而不是真正的 ID
【解决方案2】:

您缺少一些分号,例如在 $query = ...echo(...) 语句之后。语法错误总是意味着你编写代码的方式有问题,而不是代码的功能有问题。只需仔细查看错误消息中给出的行号周围的区域即可解决大部分问题。

至于您的其他问题:mysql_num_rows() 抱怨其参数不是资源意味着您的查询出错了。您应该检查查询是否成功执行($con 将评估为 true 然后)如果没有,请检查 mysql_error() 以获取错误消息。

顺便说一句,您的代码对SQL injection 开放。攻击者可能会在 POST 参数中插入一些意想不到的东西,您的整个数据库将在几秒钟内被泄露或操纵。

【讨论】:

  • @Jusnit 被告知插入查询,正如他现在给出的那样,它说 mysql_num_rows 提供的参数无效
  • @user1285130 看到我更新的答案,你应该添加一些错误处理代码。另外,关于mysql_affected_rows,Jusnit 是对的(尽管您可能根本不需要它,只需检查查询是否成功)。
  • @Anohter Code 我的代码工作正常,但它在 Patiendid 和提供者 npi id 中插入 o
猜你喜欢
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 2014-10-09
相关资源
最近更新 更多