2017-09-20 8 views
-1

EDITED

何も、 私はクエリを実行するたびに、同じ行が既に存在する場合でも、行を挿入します。どうしましたか?

function vincular(){ 
 
    $.ajax({ 
 
      url: 'api/vinculados.php', 
 
      type: 'POST', 
 
      data: { 
 
      juridica: $("#sel_jur").val(), 
 
      fisica: $("#mod_id_perfil").val(), 
 
      usuario: $("#mod_usuario_perfil").val() 
 
      }, 
 
      success: function (data) { 
 
      if(data.status == "ok") { 
 
       console.log(data); 
 
      } 
 
      } 
 
    }); 
 
}
<?php 
 

 
include 'conexion.php'; 
 

 

 

 
$consulta=mysqli_query($conexion, "SELECT * from perfiles_vinculados WHERE perfil_juridica = '$_POST[juridica]'"); 
 
if (mysqli_num_rows($consulta) > 0) 
 
{ 
 
echo "ya existe"; 
 
} else { 
 
    mysqli_query($conexion, "INSERT INTO perfiles_vinculados (perfil_juridica, perfil_fisica, usuario) 
 
    VALUES ('$_POST[juridica]', '$_POST[fisica]', '$_POST[usuario]')"); 
 
} 
 

 
?>

+3

[PHPでMySQL APIを混ぜることはできますか?](https://stackoverflow.com/questions/17498216/can-i-mix-mysql-apis-in-php) – aynber

+1

あなたはワイドですSQLインジェクション用にオープン。 mysqliを部分的に使用しているので、[prepared statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と[bind_param](http:// php .net/manual/en/mysqli-stmt.bind-param.php)。 **これは発生するかもしれない厄介な引用問題を処理します** – aynber

+0

あなたは同時にmysqlとmysqliを使用しています。それは問題になる可能性があります。 mysqli –

答えて

0

この

$juridica = $_POST['juridica']; 

$consulta=mysqli_query($conexion, "SELECT * from perfiles_vinculados 
WHERE perfil_juridica = '$juridica'"); 

if (mysqli_num_rows($consulta) > 0) 
{ 
echo "ya existe"; 
} else { 
$fisica = $_POST['fisica']; 
$usuario = $_POST['usuario']; 
    mysqli_query($conexion, "INSERT INTO perfiles_vinculados 
(perfil_juridica, perfil_fisica, usuario) 
    VALUES ('$juridica', '$fisica', '$usuario')"); 
} 

にPHPコードを修正$ _POST変数が '' を必要とする、括弧にする文字列を必要とすることを忘れないでください。

これが役立つかどうか教えてください。

編集:ああ、あなたはSQLインジェクションに脆弱です。

関連する問題