に変換することができませんでした。この問題は、PHPで解決すべきではない、私はそのようにテーブルから値をエコーしようとした これはデータベース設計の問題であるためです。代わりに、UserDetail
テーブルを変更して、重複を挿入しようとするクエリをDBが拒否するようにします。これは、実行クエリです:
$sql = 'ALTER TABLE UserDetail ADD UNIQUE INDEX (`Username`)';
$result = $conn->query($sql);
if($result) echo 'Success!';
else echo $conn->error;
あなたがこれを正常に完了したら、このテーブル内の重複Username
値を入力することはできません。クエリは実行されず、エラーが発生します。今
スクリプトがINSERT
からINSERT IGNORE
にあなたのINSERTクエリを変更、すでに存在しているユーザ名を挿入しようとするとエラーを回避するために:
$sql = "INSERT IGNORE INTO UserDetail SET Username='$escaped_new_username'";
$result = $conn->query($sql);
あなたのコードが失敗したところであなたがエコーしようとしているので、 $conn->query
の結果ですが、文字列ではありません。 DBの結果を示すまでの手順は以下のとおりです。
- クエリを実行し(あなたがやった)
- 結果は
fetch
fetch_assoc
、fetch_array
かを実行して結果を取得し、false
- ではないことをチェックすることにより、エラーがなかったことを確認しますそのようないくつかのメソッドの結果
取得したものを使用または表示します。
使用しているDBドライバのドキュメントを参照してください。最も一般的なのはMySQLiとのPDO_MySQL
可能な重複している[MySQLではどのように「存在しない場合は挿入」に?](http://stackoverflow.com/questions/1361340/how-to-insert-if- not-exists-in-mysql) – revo