0

スクリプトのさまざまな例を何時間にもわたって漂流し、答えを探しながら、リモートで理解できると思われるほとんどすべてを試した後、私は再びより知的な人に翻弄されます。私がやりたいことは、ユーザーのデータベース テーブルから名前を返すことだけです。これはとても難しいですか、私にはYEPのようです。誰か私を正してください。私はすべてのエラーをソートしましたが、今は何も得られません。問題は、リターン結果ステートメントにあると思います。これが私のコードです:

<?php
//connect to database
$mysqli = new mysqli('localhost', 'fiona', 'imB04', 'Org_db');

// check connection
    if (mysqli_connect_errno()) {
      echo "Connect failed: " . mysqli_connect_errno(); exit();
    }

//Prepared statement, bind and execute 
    if (!$stmt = $mysqli->prepare("SELECT `name` FROM users WHERE name = ?" )) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
//bind parametres
if (!$stmt->bind_param("i", $name)) {
    echo "Binding param failed: (" . $stmt->errno . ") " . $stmt->error;
//execute query or return error
}
if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
//bind result variable
if (!$stmt->bind_result($name)) {
    echo "bind result failed: (" . $stmt->errno . ") " . $stmt->error;
}
  if ($result = $mysqli->prepare("SELECT `name` FROM users WHERE name = ?")) {
 while ($row = $result->fetch_array()) 
 {
 echo $result['name'];
 }
  }

//Close statement 
      $stmt -> close();
//Close connection 
   $mysqli -> close();  

?>
4

1 に答える 1

-1

このコードを試してみてください。ただし、エラー チェックをやり過ぎていると思います。失敗をチェックするために、この select に else を追加できます。$db をデータベースの名前に変更します。

    $query = "SELECT `name` FROM `users` WHERE `name`=?";
    $stmt = $db->prepare($query);
    $stmt->bind_param('s',$name);
    $stmt->execute();
    $stmt->bind_result($name);

    if($stmt->fetch())
    {
        echo $name;
    }
    $stmt->close();

名前の検索にもこれを使用します

<snip>
"WHERE CONCAT(`firstname`, ' ',`lastname`) LIKE CONCAT('%', ?, '%')";
$stmt->bind_param('s',$name);
<snip>

これは姓名を検索する例です。concat を使用する場合、名前の一部しかないか、名前または姓があるかは問題ではありません。

于 2016-09-16T17:55:57.540 に答える