有人可以帮助我,为什么我收到此错误mysqli_stmt::execute() expects exactly 0 parameters, 1 given in
我已检查过所有内容。我不确定什么似乎是错的。我也尝试将单引号更改为双引号但仍然得到相同的错误。
代码就在这里。坦克!
<?php
include 'dbconnect.php';
$g_id = 'g_id';
$g_name = 'g_name';
$query = $db->prepare("SELECT g_id, g_name, h_d FROM g_post WHERE g_id = '$g_id'");
$query->execute(array("g_id" => $_GET['game_id']));
$query->bind_result($g_id, $g_name, $h_d);
?>
答案 0 :(得分:1)
MySQLI比PDO更具有方法性,首先你需要占位符(?
),而不是将值放在查询中。
在bind_param()
,i
整数,s
字符串,d
十进制/整数/浮点数和b
blob中传递正确的日期类型。
如果查询有20个字段需要声明20个变量,请get_result()
在bind_result()
上使用最后一个。{/ p>
$query = $db->prepare("SELECT g_id, g_name, h_d FROM g_post WHERE g_id = ?");
$query->bind_param('i', $g_id);
$query->execute();
$result = $query->get_result();
while($row = $result->fetch_assoc()){
echo $row['g_id'] . ' - '. $row['g_name'] .'<br>';
}
使用bind_result()
,您可以这样做:
$query = $db->prepare("SELECT g_id, g_name, h_d FROM g_post WHERE g_id = ?");
$query->bind_param('i', $id);
$query->execute();
$query->bind_result($g_id, $g_name);
while($query->fetch()){
echo $g_id . ' - '. $g_name .'<br>';
}
答案 1 :(得分:1)
<?php
include 'dbconnect.php';
$g_id = 'g_id';
$g_name = 'g_name';
$query = mysqli_query ($con, "SELECT g_id, g_name, h_d FROM g_post WHERE g_id = '$g_id'") or die(mysqli_error($con));
$name=( $query) ? mysqli_fetch_assoc( $query) : false;
$ con变量将来自您的dbconnect.php文件,您可以在其中设置连接字符串并将其放入$ con变量或您调用的任何变量。
希望这有帮助,
苏海尔。