【问题标题】:how to make mysqli prepared statement and fetch result? [closed]如何制作 mysqli 准备好的语句并获取结果? [关闭]
【发布时间】:2014-02-15 21:13:10
【问题描述】:

我不明白如何创建准备好的语句,而且我看到的所有教程都只获取列。 我正常的sql查询

      $id = $_GET['id']; 
      $result = mysql_query("SELECT * FROM files WHERE id=$id ") or die(mysql_error());
      $row = mysql_fetch_array($result);
      $name = $row['name'];
      $date = $row['date'];

请告诉我如何创建准备好的语句以及如何获取多列并将日期插入变量。

【问题讨论】:

    标签: php mysql sql mysqli


    【解决方案1】:

    首先,在生产环境中使用SELECT * 并不是一个好主意。而是明确指定所需的列。看看https://stackoverflow.com/a/65532/1920232

    现在您的代码可能看起来像

    $id = $_GET['id']; 
    
    $db = new mysqli('localhost', 'user', 'password', 'dbname');
    $sql = 'SELECT name, date FROM files WHERE id = ?'; //specify columns explicitly 
    if ($stmt = $db->prepare($sql)) { //create a prepared statement
        $stmt->bind_param('i', $id); //bind parameters
        $stmt->execute(); //execute query
        $stmt->bind_result($name, $date); //bind result variables
        $stmt->fetch(); //fetch values
    }
    $db->close();
    
    echo $id, ' ', $name, ' ', $date;
    

    注意: 为简洁起见,有意跳过所有错误处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-29
      • 2021-11-20
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多