PHP データベースの問題、助けてください。 。 。 。
私は PHP を初めて使用するので、ログイン ページを自分で作成したいと思っていますが、自分のアカウントを確認することさえできません。私のコードのどこが間違っているのか見てください。
<?php $user123 = $_POST['user']; $db = new mysqli($sqln,$sqlu,$sqlp,$sqld) or die("Error in the consult.." . mysqli_error($db)); $query = "SELECT 'user_email' FROM 'user' WHERE 'user_email' = '$user123'"; // mysql_select_db($sqld); mysqli_select_db($db, $sqld); $result = $db->query($query) or die("Error in the consult.." . mysqli_error($db)); if ($result == 1){ echo "<p> 登陆成功 </p>"; } elseif ($result == 0){ echo "<p> 没有找到 </p>"; } echo $_POST["user"]; $dba = $db->affected_rows; echo $dba; mysqli_close($db); ?>
$result = $db->query ($query) または die("Error in theConsult.." . mysqli_error($db));
この文に次のエラー表示が含まれていない場合、次の echo $dba は -1 を表示しますが、入力したアカウントはのデータベースにあります。
入力した user123 は vvvvy です
しかし、送信する Web ページを開くと、「コンサルトでエラーが発生しました。SQL 構文にエラーがあります。正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。」というエラーが表示されます。 use Near ' 'user' WHERE 'user_email' = 'vvvvy'' at line 1
ディスカッション(解決策)に返信
次のステートメントをコピーすれば大丈夫です
$query = "SELECT user_email FROM `user` WHERE user_email = '$user123'";
あなたの文には2つの間違いがありますプログラム
まず、SQL ステートメント内の記号が間違っています。フィールドとテーブルを一重引用符で囲むことはできますか? $query = "SELECT user_email FROM `user` WHERE user_email = '$user123'";
2 番目: $result の値が false または ID であるため、判定条件に問題があるため、単純に 1 または 0 に等しい値を使用することはできません。 例: if($result){
$result ){
Into: $query = "SELECT user_email FROM `user` WHERE user_email = '$user123'"; 2 番目: $result の値が false または ID であるため、判定条件に問題があります。 1 または 0 である必要はありません
例: if($result){表示が存在しません。 。 。
ググってみたらステートメントに問題はなかったのですが、データベースの設定が間違っているのでしょうか?私のものはローカルで、wamp~を使用しています
$query = "SELECT 'user_email' FROM 'user' WHERE 'user_email' = '$user123'";
$query = "SELECT `user_email' FROM 'user ` WHERE `user_email ` = '$user123'";
同じですか?
$query = "SELECT 'user_email' FROM 'user' WHERE 'user_email' = '$user123'";
および
$query = "SELECT `user_email` FROM 'user` WHERE `user_email` = '$user123 '";
それは同じですか?
$query = "SELECT `user_email` FROM `user` WHERE `user_email` = '$user123'";
この文を次のように変更しました。
$query = "SELECT user_email FROM `user` WHERE user_email = '$user123'";
$query = "SELECT 'user_email' FROM 'user' WHERE 'user_email' = '$user123'"; $query = "SELECT `user_email` FROM `user` WHERE `user_email` = '$user123'"; それらは同じですか?
この文を次のように変更しました。
$query = "SELECT user_email FROM `user` WHERE user_email = '$user123'";
..投稿を編集できないのはなぜですか? 。
この文を変更したら、何を入力しても正しくなりますか?
mysqli::query -- mysqli_query ? 对数据库执行一次查询
返回值
失败时返回 FALSE,通过 mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE。
因此,即使你输入库中没有的记录,只要sql没有错误,也是返回mysqli_result 对象。而 "结果集==1" 永远为真,所以就出现你说的输入什么都是对的了。
正确的做法是用它查询出来的行数与1比较就对了。
if ($result->num_rows == 1){ echo "<p> 登陆成功 </p>"; } else { echo "<p> 没有找到 </p>"; }
你的程序两个地方错误
第一:你的sql语句里的符号用错了,字段和表是不是可以用单引号的引起来的
可以改成:$query = "SELECT user_email FROM `user` WHERE user_email = '$user123'";
第二:因为你的$result的值要么是false要么就是ID,所你的判断条件有问题,你可以直接不用等于1或0
例如:if($result){
...
}
else if($result){
...
}
我全部按照你的修改了,但是不管输入对错还是显示不存在。。。
我GOOGLE了下,发现现在语句啥的也没有什么问题,难道数据库设置有问题?我的是本地的,用的是wamp~
我的这个这样写也有点不对,应该直接else {...}就可以了,不要用else if($result){...}
梳理下你的if判断,还有执行的sql是否有误。
mysqli::query -- mysqli_query ? 对数据库执行一次查询
返回值
失败时返回 FALSE,通过 mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE。
因此,即使你输入库中没有的记录,只要sql没有错误,也是返回mysqli_result 对象。而 "结果集==1" 永远为真,所以就出现你说的输入什么都是对的了。
正确的做法是用它查询出来的行数与1比较就对了。
if ($result->num_rows == 1){ echo "<p> 登陆成功 </p>"; } else { echo "<p> 没有找到 </p>"; }
一直想获取我查询的数据,但没有找到函数,英语又不会。。。谢谢哥们了。。。如果用 $result->num_rows 来检测帐号密码会不会不安全?

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

ReactPhpの詳細な解釈の非ブロッキング機能の公式紹介は、多くの開発者の質問を呼び起こしました。
