Php 我可以在同一个准备好的语句中从等于改为不等于吗

Php 我可以在同一个准备好的语句中从等于改为不等于吗,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,我正试图找出如何创建准备好的语句。我现在有: $stmt = $mysqli->stmt_init(); if($stmt->prepare("SELECT fk_player_id, player_draws, player_turn, player_passes, swapped FROM ".$prefix."_gameplayer WHERE fk_game_id = ? AND fk_player_id = ?")){ $stmt->bind_param(

我正试图找出如何创建准备好的语句。我现在有:

$stmt = $mysqli->stmt_init();

if($stmt->prepare("SELECT fk_player_id, player_draws, player_turn, player_passes, swapped FROM ".$prefix."_gameplayer WHERE fk_game_id = ? AND fk_player_id = ?")){

    $stmt->bind_param('ii', $currgame, $playerid);
    $stmt->execute();
    $stmt->bind_result($playerid, $udraws, $uturn, $upass, $uswaps);
    $stmt->fetch();

    // HERE I WANT TO MAKE A NEW CALL //

    $stmt->close(); 

}
//区域中,我想打一个新电话//我想运行以下命令:

$sql = mysql_query("SELECT fk_player_id, player_tiles, player_draws, player_turn, player_passes, swapped FROM ".$prefix."_gameplayer WHERE fk_game_id = $currgame AND fk_player_id != $playerid");
$row = mysql_fetch_assoc($sql);

$opponent = $row['fk_player_id'];
$oppTiles = $row['player_tiles'];

$odraws = $row['player_draws']+1;
$oturn = $row['player_turn'];
$opass = $row['player_passes'];
$oswaps = $row['swapped'];
这两个调用是相同的,除了=和!=。这可以用同一句话来表达吗


提前感谢:-)

据我所知,您需要所有玩家。
好吧,把它们都选出来。您可以在显示时分开

$sql = "SELECT * FROM {$prefix}_gameplayer WHERE fk_game_id = ?";
$stmt = $mysqli->stmt_init();

$data = array();
if($stmt->prepare($sql)){
    $stmt->bind_param('i', $currgame);
    $stmt->execute();
    $res = $stmt->get_result();
    while ($ow = $res->fetch_assoc()) {
        $data[] = $row;
    }
    $stmt->close(); 
}
// to display own games
foreach ($data as $row) {
    if ($row['fk_player_id'] == $playerid) {
        // do something
    }
}
// to display other games
foreach ($data as $row) {
    if ($row['fk_player_id'] != $playerid) {
        // do something
    }
}

就我理解你的问题而言,你需要所有的球员。
好吧,把它们都选出来。您可以在显示时分开

$sql = "SELECT * FROM {$prefix}_gameplayer WHERE fk_game_id = ?";
$stmt = $mysqli->stmt_init();

$data = array();
if($stmt->prepare($sql)){
    $stmt->bind_param('i', $currgame);
    $stmt->execute();
    $res = $stmt->get_result();
    while ($ow = $res->fetch_assoc()) {
        $data[] = $row;
    }
    $stmt->close(); 
}
// to display own games
foreach ($data as $row) {
    if ($row['fk_player_id'] == $playerid) {
        // do something
    }
}
// to display other games
foreach ($data as $row) {
    if ($row['fk_player_id'] != $playerid) {
        // do something
    }
}

不使用同一条语句,但如果这是为了减少额外的数据库查询,您可以在一条语句中获得所有结果(省略
fk\u player\u id
),然后手动拆分结果。为什么要在第二个代码部分使用
mysql\u*
函数?它们已被弃用,并且您没有正确地转义查询参数。不使用相同的语句,但如果这是为了减少额外的数据库查询,您可以只获取所有结果(完全忽略
fk\u player\u id
)在一个语句中手动拆分结果。为什么在第二个代码部分使用
mysql.*
函数?它们已被弃用,并且您没有正确地转义查询参数。嘿,看起来是正确的解决方案,除了。。。尝试运行此操作时,我收到一个服务器错误页面。错误从这里开始:$res=$stmt->get_result();有什么想法吗?并非每个构建都支持get_结果。所以你必须按照以前的方式获取数据。对不起,新的准备工作。。。你失去了我。那么我就不能用上面的例子了?我真的试着把这个例子弄明白了,但我还是迷路了。。。我应该在获取\u结果之前使用$stmt->bind\u result()吗?请帮助…@YourCommonSense今天我跨越了
的需要=如何在mysqli准备的语句中使用它?嘿,看起来是正确的解决方案,除了。。。尝试运行此操作时,我收到一个服务器错误页面。错误从这里开始:$res=$stmt->get_result();有什么想法吗?并非每个构建都支持get_结果。所以你必须按照以前的方式获取数据。对不起,新的准备工作。。。你失去了我。那么我就不能用上面的例子了?我真的试着把这个例子弄明白了,但我还是迷路了。。。我应该在获取\u结果之前使用$stmt->bind\u result()吗?请帮助…@YourCommonSense今天我跨越了
的需要=如何在mysqli准备的语句中使用它?