mysqli_stmt :: execute()期望0个参数,1给定错误

时间:2015-12-01 15:40:26

标签: php mysqli

有人可以帮助我,为什么我收到此错误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);
?>

2 个答案:

答案 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变量或您调用的任何变量。

希望这有帮助,

苏海尔。