Php mysqli_stmt::execute()只需要0个参数,1个给定错误
有人能告诉我为什么会出现这个错误吗?Php mysqli_stmt::execute()只需要0个参数,1个给定错误,php,mysqli,Php,Mysqli,有人能告诉我为什么会出现这个错误吗?mysqli_stmt::execute()只需要0个参数,1个参数在中给出,我已经检查了所有参数。我不确定是什么地方出了问题。我还尝试将单引号更改为双引号,但仍然得到相同的错误 代码在这里。坦克 <?php include 'dbconnect.php'; $g_id = 'g_id'; $g_name = 'g_name'; $query = $db->prepare("SELECT g_id, g_name, h_d FROM g_po
mysqli_stmt::execute()只需要0个参数,1个参数在
中给出,我已经检查了所有参数。我不确定是什么地方出了问题。我还尝试将单引号更改为双引号,但仍然得到相同的错误
代码在这里。坦克
<?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);
?>
MySQLI比PDO更有条理,首先您需要占位符(
?
),而不是将值正确地放在查询中
在bind_param()
、i
integer、s
string、d
decimal/integer/float和b
blob中传递正确类型的日期
如果查询有20个字段,您需要声明20个变量,请在bind\u result()
处使用最后一个字段
$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>';
}
1)占位符的名称前面需要一个冒号+您不需要引用它们2)当您使用PDO时,您只能将数组传递给execute()
,而不支持mysqli\u*mysqli也不支持命名占位符。它解决了问题。但是,它不会回显我试图显示的变量$h_d和$g_name。我正在使用while($query->fetch())
@LostinDigitalWorld如果你喜欢bind\u result()
没关系:P我不喜欢
$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>';
}
<?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;