一意のIDを持つデータベースに新しいエントリを挿入しようとしています。私のコードのどこかに間違いがありますが、私はそれを見つけることができません。助けてもらえますか?php mysqlが一意のIDを持つレポートを挿入
自動インクリメントはい間違いがwhere($countId)
であるnoオプション
$newConversationID = uniqid();
$checkID = $DBcon->query("SELECT * FROM tbl_conversations WHERE conversation_id=$newConversationID");
$countID = $checkID->num_rows;
while($countID) {
if ($countID==0) {
$DBcon->query("INSERT INTO tbl_conversations (conversation_id,user_id, date) VALUES('$newConversationID','$fromID',UNIX_TIMESTAMP())");break;
} else {
$newConversationID = uniqid();
$checkID = $DBcon->query("SELECT * FROM tbl_conversations WHERE conversation_id=$newConversationID");
$countID = $checkID->num_rows;
}
}
を実行しない**有界変数入力して、あなたが保護するためにプレースホルダ(準備文)とのパラメータ化クエリを使用する必要がありますあなたのデータベース[SQLインジェクション](http://stackoverflow.com/q/60174/)! ['mysqli :: prepare()'](http://php.net/mysqli.prepare)と['mysqli_stmt :: bind_param()'](http://php.net/mysqli-stmt)から始めましょう。 .bind-param)。 – Qirel
@Qirelこの場合、スクリプトでデータが生成されているので、実際には違いはありません。 – RiggsFolly
これは本当ですが、採用するのは良い習慣です。変数であるものを準備します。 – Qirel