【问题标题】:How to fetch assoc array while using mysqli prepare如何在使用 mysqli prepare 时获取 assoc 数组
【发布时间】:2013-09-12 08:58:44
【问题描述】:

为了确保我的数据库安全,我使用了准备语句。这是我的代码:

//connecting to MySql database
$con=mysqli_connect("host","user","pass","dbname");
// checking database connection
if (mysqli_connect_errno($con)){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$stmt = mysqli_prepare($con,"SELECT * FROM `table` WHERE emb=? LIMIT 1");
mysqli_stmt_bind_param($stmt, 's', $emb);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);

现在我想知道如何使用 ASSOC 获取数组

$embInfo = mysqli_fetch_array($stmt, MYSQLI_ASSOC);

我想要这个,这样我就可以在下面放一些东西来获取值

$embInfo['name']

$embInfo['email']

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

试试这个:

//connecting to MySql database
$con=mysqli_connect("host","user","pass","dbname");
// checking database connection
if (mysqli_connect_errno($con)){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$stmt = mysqli_prepare($con,"SELECT * FROM `table` WHERE emb=? LIMIT 1");
mysqli_stmt_bind_param($stmt, 's', $emb);
mysqli_stmt_execute($stmt);


while($embInfo = mysqli_fetch_array($stmt, MYSQLI_ASSOC)){
  echo 'My name is '.$embInfo['name'].'and my email is '.$embInfo['email'].'<br/>';

}

mysqli_stmt_close($stmt);

【讨论】:

  • “试试这个”——有什么用?
【解决方案2】:

我可以建议一个替代方案

{
  $server = '';
  $user = '';
  $pass = '';
  $db = '';

  // connect to the database
  $mysqli = new mysqli($server, $user, $pass, $db);

  // show errors (remove this line if on a live site)
  mysqli_report(MYSQLI_REPORT_ERROR);

  $club=$_POST'club'];
  $sql = "SELECT * FROM players WHERE club = '$club'";
  $result=mysqli_query($mysqli,$sql);
  while($row = mysqli_fetch_array($result))
  {
    echo $row['player'];
  }
  }

【讨论】:

  • 但我认为这并不安全。 SQL 注入可以通过此代码破坏数据库。这就是我尝试使用准备好的语句的原因。
  • $club = mysql_real_escape_string($_POST['club']);试试这个
  • @sushruth-sv 真正的转义字符串已过时,您建议使用已弃用的 mysql。我不明白你想说什么。你应该知道这些天是最安全的方法。
  • 更加安全和快速,因为 MySQL 引擎能够为连续查询重用它的旧执行计划
猜你喜欢
  • 2018-08-11
  • 1970-01-01
  • 2012-10-04
  • 2011-10-13
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多