あなたが本当にtable
という名前のテーブルを持っている場合は、戻って使用することがより適切であろうので、名前の周りにダニ単語TABLE
はreserved word in MySQLです。クエリはまだあなたのために動作しない場合
$sql = "SELECT `id` FROM `table` WHERE `first_name` = '$Name'";
その他の考えられる理由:それは文字列が含まれている場合、また、あなたの変数の周りの単一引用符を使用する必要があります
- あなたが接続パラメータを持っていることを確認してください正しい順序。それは
mysqli_connect($server, $dbuser, $dbpw, $dbname)
でなければなりません。
- 1行の結果が予想される場合は、
fetch_assoc()
の代わりにfetch_array()
を使用する必要があります。
mysqli()
の代わりにmysqli_connect()
を使用し、同時にオブジェクト指向のスタイル$result->
を使用する場合は、PROCEDURAL STYLEとオブジェクト指向スタイルを混合しています。あなたは一つのスタイルを決めてそれに固執すべきです。
これは、クエリの手続きスタイルのようになります。私は以来、table
よりも、他のあなたのテーブルに何かを命名推薦
$Name = "Dick";
$conn = new mysqli($server, $dbuser, $dbpw, $dbname);
$sql = "SELECT `id` FROM `table` WHERE `first_name` = '$Name'";
$result = $conn->query($sql);
$row = $result->fetch_array(MYSQLI_ASSOC);
$customer_id = $row['id']; // YOUR CUSTOMER ID
$result->free(); // FREE RESULT SET
$conn->close(); // CLOSE CONNECTION
:
$Name = "Dick";
$conn = mysqli_connect($server, $dbuser, $dbpw, $dbname); // NOTE THE CHANGED ORDER OF CONNECTION PARAMETERS!
$sql = "SELECT `id` FROM `table` WHERE `first_name` = '$Name'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$customer_id = $row['id']; // YOUR CUSTOMER ID
mysqli_free_result($result); // FREE RESULT SET
mysqli_close($conn); // CLOSE CONNECTION
そして、これは、オブジェクト指向のスタイルになります予約語なので、解析の問題に陥る可能性があります。フィールド名も同じです。もっと読み:http://php.net/manual/en/mysqli-result.fetch-array.php
@JohnConde:手続き型とオブジェクト指向のスタイルの使用中
mysqli_fetch_array()
との違いについてhttps://dev.mysql.com/doc/refman/5.5/en/keywords.htmlより「後方」の部分が重要ではありません。 –
[例外を有効にする](http://stackoverflow.com/questions/14578243/turning-query-errors-to-exceptions-in-mysqli)を忘れずにエラーを表示させてください。非常に特有のことは、 'Database :: disconnect()'呼び出しが行われていることですが、明らかにそれとは独立したハンドルを作成しました。 – tadman
質問に追加したいエラーログがありますか? – Alfabravo