0

誰かが以下のコードを準備済みステートメントとして書き直すことはできますか?

result = mysqli_query($con,"SELECT * FROM note_system WHERE note = '$cnote'") 
or die("Error: ".mysqli_error($con));

while($row = mysqli_fetch_array($result))
{
$nid = $row['id']; 

}

準備されたステートメントを学習しようとしていますが、検索中に見つけた多くの例から、それがどのように機能するかを理解するのに苦労しています. 慣れ親しんだコードを見つけたら、準備済みのステートメントとして書き直して、クリックできるようになることを願っています。PDO はご遠慮ください。現在の知識レベルでは混乱しすぎます。ありがとう。

4

4 に答える 4

4

こんにちは、ButterDog さん、PDO について順を追って説明します。

ステップ1)

connect.php という名前のファイルを作成します (または任意のもの)。このファイルは、データベースとの対話を必要とする各 php ファイルで必要になります。

また、私のコメントに注意してください:

?php

//We set up our database configuration
$username="xxxxx"; // Mysql username
$password="xxxxx"; // Mysql password


// Connect to server via PHP Data Object
$dbh = new PDO("mysql:host=xxxxx;dbname=xxxxx", $username, $password); // Construct the PDO variable using $dbh
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Set attributes for error reporting very IMPORTANT!
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); // Set this to false so you can allow the actual PDO driver to do all the work, further adding abstraction to your data interactions.
?>

ステップ 2) connect.php を要求します。以下をご覧ください。

require ('....../........./...../connect.php'); // Require the connect script that made your PDO variable $dbh

ステップ 3)

データベースのやり取りを開始するには、次のことを行うだけです。コードのコメントも読んでください。今のところ、配列について心配する必要はありません! PDO の完全な要点を理解してから、作業を簡単にすることを考えてください。「長い道のり」を繰り返すことで、コードの理解が深まります。最初から手を抜かないでください。自分が何をしているのかを理解したら、手抜きをしてください。

$query = $dbh->prepare("SELECT * FROM note_system WHERE note = :cnote"); // This will call the variable $dbh in the required file setting up your database connection and also preparing the query!

$query->bindParam(':cnote', $cnote); // This is the bread and butter of PDO named binding, this is one of the biggest selling points of PDO! Please remember that now this step will take what ever variable ($cnote) and relate that to (:cnote)

$query->execute(); // This will then take what ever $query is execute aka run a query against the database

$row = $query->fetch(PDO::FETCH_ASSOC); // Use a simple fetch and store the variables in a array

echo $row['yourvalue']; // This will take the variable above (which is a array) and call on 'yourvalue' and then echo it.

PDOについては以上です。それが役に立ったことを願っています!

こちらもご覧ください。それは私をとても助けてくれました!

私もこれを参考にしています (時々) - Web サイトはくだらないように見えますが、そこには PDO に関する品質情報があります。私もこれを使用しており、これが最後のリンクであることを誓います! この後は、質問をするだけですが、うまくいけば、これが PDO に関するちょっとしたリファレンス ガイドになることを願っています。(うまくいけば笑)

于 2013-04-18T00:14:02.433 に答える
1

これは正しい道に役立つはずです...

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT id FROM note_system WHERE note = ?";

$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query)) {
    print "Failed to prepare statement\n";
}
else {
    $note = "mynote";
    mysqli_stmt_bind_param($stmt, "s", $note);

    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    while ($row = mysqli_fetch_array($result))
    {
        $nid = $row['id'];
    }
}

mysqli_stmt_close($stmt);
mysqli_close($link);
于 2013-04-18T00:14:56.487 に答える