2017-11-26 19 views
0

古いMySQLを介してDBに接続されている私のフォームにちょっとした問題がありました。私はこれをMySQLiにオンラインソースと自分の知識に従って変換しようとしていますが、そのトリックはしていないようです。私はいくつかのポイントの変換をカバーしているstackoverflow(How to solve Mysql to mysql as I have some problems)をチェックしたが、私はいくつかの余分な機能を持っているので、私はかなり行く方法を知っていない。また、MySQLiを使用する場合、striplashes関数はまだ必要ですか?あなたの助けと時間がはるかに高く評価され、スクリプトは次のように行く:MySQLからMySQLiへの変換php形式

<?php 

    if($_POST['formSubmit'] == "Submit") 
    { 
     $errorMessage = false; 

     if(empty($_POST['formName'])) 
     { 
      $errorMessage = true; 
     } 
     if(empty($_POST['formEmail'])) 
     { 
$errorMessage = true;  } 
     if(empty($_POST['formAddress'])) 
     { 
$errorMessage = true;  } 
    if(empty($_POST['formPrice'])) 
     { 
$errorMessage = true; } 


    $varName = $_POST['formName']; 
     $varEmail = $_POST['formEmail']; 
     $varAddress = $_POST['formAddress']; 
    $varPrice = $_POST['formPrice']; 
     $varComments = $_POST['formComments']; 

     if($errorMessage == false) 
     { 

     $db = mysql_connect("","",""); 
     if(!$db) die("Error connecting to MySQL database."); 
     mysql_select_db("" ,$db); 

      $sql = "INSERT INTO formdata (name, email, address, price, comments) VALUES (". 
          PrepSQL($varName) . ", " . 
          PrepSQL($varEmail) . ", " . 
          PrepSQL($varAddress) . ", " . 
       PrepSQL($varPrice) . ", " . 
          PrepSQL($varComments) . ")"; 
      mysql_query($sql); 

      header("Location: thankyou.php"); 
      exit(); 
     } 
    } 

    //sql injection protection.. 
    function PrepSQL($value) 
    { 

     if(get_magic_quotes_gpc()) 
     { 
      $value = stripslashes($value); 
     } 


     $value = "'" . mysql_real_escape_string($value) . "'"; 

     return($value); 
    } 


?> 

私は、接続部が動作していたが、それはので、私は、クエリの一部が間違っていたと思うDBへの書き込みのdidnt。

+0

あなたのコードでmysqliのでしょうか? –

+0

このコードを使用しないでください。準備された文とともにmysqliまたはPDOを使用し、それを使って完了してください。 –

答えて

-1

だけで基本的な変更:

$link = mysqli_connect('localhost','root','pass','myDB'); 
if (!$link) { 
die('Could not connect: ' . mysqli_connect_error()); 
} 

$sql= "INSERT INTO keypairs (name, email, address, price, comments) VALUES ('$varName','$varEmail','$varAddress','$varPrice','$varComments')"; 
if (!mysqli_query($link,$sql)) { 
    //error ... 
} 
+0

ああ、ありがとう、私はもはやstriplashesは必要ないのですか? – Jeroen

+0

あなたはSQLインジェクションから保護するためにmysql_real_escape_stringを使用します。 – RequireBool

関連する問題