【问题标题】:mysqli_real_escape_string with mysqli_num_rows in phpmysqli_real_escape_string 和 php 中的 mysqli_num_rows
【发布时间】:2016-07-12 11:16:10
【问题描述】:

我的问题计数 sql 。

<input name='d_n[]'> 
<input name='d_n[]'>

php页面

后值亚当的

foreach($ds_director as $key => $director){
  // my problem here //
  $DnumSql = "SELECT * FROM list WHERE ds_name = ?";
  $stmt = $con -> prepare($DnumSql);
  $stmt -> bind_param('s',$director);
  $stmt -> execute();
  $Dnum = $stmt->num_rows;
  echo "$Dnum"; // result again '0'
  /////////////
  if($Dnum == 0){
      $director_sql = mysqli_real_escape_string($con,ucwords($director));
      $Dsql =  "INSERT INTO movie_ds (ds_m_name, ds_name, ds_status) VALUES ('$director_sql', '$m_name', 'yönetmen')";
      $Dquery = mysqli_query($con,$Dsql);

      if($Dquery){
        echo "<p style='color:green'>good</p>";
      }else{
        echo mysqli_error($con);
      }
}else{
     echo "<p style='color:red;'>not save</p>";
}
}

由于这个问题,记录了相同的值

更新问题已编辑 = 数组输入

【问题讨论】:

标签: php sql mysqli count


【解决方案1】:

最好使用prepare statement。它会自动转义你的字符串并防止sql注入

$sql = 'SELECT * FROM list WHERE d_n =?';
$stmt =$con->prepare($sql);
$stmt->bind_param('s', $_POST['d_n']);
$stmt->execute();
$numrows = $stmt->num_rows;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多