0

我正在使用 php 从 iphone 向服务器发送数据,它正在从 iphone 发送数据,但没有插入 mysql 我正在使用以下 php 代码。

 <?php
  $con =     

  mysql_connect("surveyipad.db.6420177.hostedresource.com","tom","ben");
   if (!$con)
    {
   die('Could not connect: ' . mysql_error());
   }

   mysql_select_db("surveyipad", $con);



   $device_Id=$_POST['device_Id'];
   $R1=$_POST['R1'];
   $R2=$_POST['R2'];
   $R3=$_POST['R3'];
   $comment=$_POST['comment'];
   $update_date_time=$_POST['update_date_time'];

    $query=("INSERT INTO survey_responsese_pfizer (device_Id,R1,R2,R3,comment,update_date_time)

  VALUES ('$device_Id','$R1','$R2','$R3','$comment','$update_date_time')");

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

    echo($device_Id)
   ?>
4

1 回答 1

1

好的,只是通过示例来学习,停止使用 mysql_functions(),它们不再被维护并且被正式弃用。在 PHP 5.6 中,它们很可能会被删除,从而导致代码损坏。

使用准备好的查询转移到 PDO。使用 PDO 的当前代码的端口:

<?php
// SQL Config
$config['sql_host']='surveyipad.db.6420177.hostedresource.com';
$config['sql_db']  ='surveyipad';
$config['sql_user']='tom';
$config['sql_pass']='ben';

// SQL Connect
try {
        $db = new PDO("mysql:host=".$config['sql_host'].";dbname=".$config['sql_db'], $config['sql_user'], $config['sql_pass']);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}catch (Exception $e){
        die('Cannot connect to mySQL server.');
}

// Check for POST, add isset($_POST['device_Id']) ect to add validations
if($_SERVER['REQUEST_METHOD']=='POST'){
   // Build your query with placeholders
   $sql = "INSERT INTO survey_responsese_pfizer 
                  (device_Id,R1,R2,R3,comment,update_date_time)
                   VALUES
                  (:device_Id, :R1, :R2, :R3, :comment, :update_date)";

    // Prepare it
    $statement = $db->prepare($sql);
    // Assign your vairables to the placeholders
    $statement->bindParam(':device_Id', $_POST['device_Id']);
    $statement->bindParam(':R1', $_POST['R1']);
    $statement->bindParam(':R2', $_POST['R2']);
    $statement->bindParam(':R3', $_POST['R3']);
    $statement->bindParam(':comment', $_POST['comment']);
    $statement->bindParam(':update_date', $_POST['update_date_time']);
    // Execute the query
    $statement->execute();

    echo htmlspecialchars($device_Id);
}
?>

未经测试,希望对您有所帮助。

于 2013-01-17T08:24:43.177 回答