如何在PHP中将这部分代码转换为准备好的语句?
从我以前的帖子() 声明 如何将部分代码转换为准备好的语句 edit.php如何在PHP中将这部分代码转换为准备好的语句?,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,从我以前的帖子() 声明 如何将部分代码转换为准备好的语句 edit.php if (isset($_GET['id'])) { $id = $_GET['id']; $update = true; $sql = "SELECT * FROM crimenews WHERE crimenews_id=$id"; $query = mysqli_query($conn,$sql); if(
if (isset($_GET['id']))
{
$id = $_GET['id'];
$update = true;
$sql = "SELECT * FROM crimenews WHERE crimenews_id=$id";
$query = mysqli_query($conn,$sql);
if(mysqli_num_rows($query) == 1)
{
$row = mysqli_fetch_array($query);
$category = $row['crimenews_cat'];
$url = $row['crimenews_url'];
$datetime = $row['crimenews_datetime'];
$lat = $row['crimenews_locationLat'];
$lng = $row['crimenews_locationLong'];
}
}
在上面的链接中已经提供了更多的代码。我更喜欢一行一行的方法,参考PHP手册Often1。警告:mysqli_stmt::bind_param():变量数与准备语句中的参数数不匹配。2.注意:尝试获取非object的属性“num_rows”您是否将查询更改为使用
?
而不是$id
注意:尝试获取非object的属性“num_rows”修复了一些拼写错误,抱歉
// while testing add
ini_set('display_errors', 1);
ini_set('log_errors',1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
if (isset($_GET['id']))
{
$update = true;
$sql = "SELECT * FROM crimenews WHERE crimenews_id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $_GET['id']);
$stmt->execute();
$res = $stmt->get_result();
if($res->num_rows == 1)
{
// fetch_assoc() returns just an assoc array and not the numeric array as well
$row = $res->fetch_assoc();
$category = $row['crimenews_cat'];
$url = $row['crimenews_url'];
$datetime = $row['crimenews_datetime'];
$lat = $row['crimenews_locationLat'];
$lng = $row['crimenews_locationLong'];
}
}