PHP7 掲示板開発の準備の第 2 ステップ

coldplay.xixi
リリース: 2023-02-17 18:30:01
転載
2276 人が閲覧しました

php7 チュートリアル コラムでは、PHP7 メッセージ ボード開発の準備の 2 番目のステップについて説明します

PHP7 掲示板開発の準備の第 2 ステップ

推奨 (無料): PHP7 チュートリアル

このステップの概要:
1. スーパー グローバル変数$_GET $ _POST
2. MYSQL データベースの設計
3. Mysqli 関連のデータベース操作、接続および追加、削除、変更 (select insert delete update) 操作


本題に入ります :

  • 1. スーパー グローバル変数 $_GET $_POST
    概念的なことはここでは説明しません。文字通りの意味と同じように、get は次のことを意味します。ユーザーの出身地 フォームの送信メソッドは get (フォームの属性は method="get") です。投稿の場合、送信メソッドは post です。唯一の違いは、post の方が get より安全であり、より多くのコンテンツを送信できることです。 掲示板の投稿方法は投稿である必要があります
// 获取姓名
$name = $_GET['name'];
$name = $_POST['name'];

// 获取联系方式
$contact= $_GET['contact'];
$contact= $_POST['contact'];

// 获取留言内容,这里如果提交的内容比较多,超过浏览器url长度限制会报错,所以还是建议用post方式
$content= $_GET['content'];
$content= $_POST['content'];
ログイン後にコピー
  • 2. MYSQL データベース設計
--
-- 表的结构 `feedback`
--

CREATE TABLE `feedback` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL COMMENT '姓名',
  `contact` varchar(100) NOT NULL COMMENT '联系方式',
  `content` text NOT NULL COMMENT '留言内容',
  `addtime` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '记录时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='留言板数据表';
ログイン後にコピー

検索レコード操作:

// localhost数据库地址,本地数据库一般都是这个或者127.0.0.1;php_course是数据表,即用户提交留言信息保存的数据表
$mysqli = mysqli_connect('localhost', '数据库账号', '数据库密码', 'php_course');
if(mysqli_connect_errno()){
    echo '连接数据库失败:'.mysqli_connect_error();
    exit;
}
mysqli_query($mysqli, "SET NAMES UTF8"); // 因为文件编码是utf8,所以数据记录集也需要设置utf8编码,否否则查询出来的结果会乱码
$sql = "SELECT * FROM feedback"; // 查询sql语句
$result = mysqli_query($mysqli, $sql); // 执行语句
$rows_num = mysqli_affected_rows($mysqli); // 返回记录数,只是一个统计,可以不用
echo $rows_num;
// 开始遍历记录集,循环获取所有feedback表中的所有记录并赋值到$all_row
$all_row = array();
while($rows = mysqli_fetch_array($result)){
    print_r($rows);
    $all_row[] = $rows;
}
// $all_row就是feedback的所有结果集
print_r($all_row);
ログイン後にコピー

レコード保存操作:

$mysqli = mysqli_connect('localhost', 'root', '', 'php_course');
if(mysqli_connect_errno()){
    echo '连接数据库失败:'.mysqli_connect_error();
    exit;
}
mysqli_query($mysqli, "SET NAMES UTF8");
$sql = 'INSERT INTO feedback (name, contact, content, addtime) VALUES ("测试", "qq1000", "留言内容", '.$time.')';
$result = mysqli_query($mysqli, $sql);
$insert_id = mysqli_insert_id($mysqli); // 返回数据表的自增长ID,比如新用户注册返回用户ID
echo $insert_id; // 当你在调试的时候,你会发现echo是很好的帮手。
if($insert_id > 0){
    // 如果入库成功,可以做什么
}
ログイン後にコピー

変更と更新:

// 修改更新
// 修改之前需要根据id查找记录是否存在,如果存在则可以修改(这种情况很常用,比如用户后台,除了验证用户是否登录还需要验证当前修改的记录是否属于当前用户)
$mysqli = mysqli_connect('localhost', 'root', '', 'php_course');
if(mysqli_connect_errno()){
    echo '连接数据库失败:'.mysqli_connect_error();
    exit;
}
$sql = "SELECT * FROM feedback WHERE id = 3";
$result = mysqli_query($mysqli, $sql); // 返回一个资源标识符,通常是数字
$row = mysqli_fetch_array($result);
if(!empty($row)){
    // 执行更新操作
    $update_sql = "UPDATE feedback SET name='修改后的名字' WHERE id={$row['id']}";
    if(FALSE !== mysqli_query($mysqli, $update_sql)){
        // 修改成功
    }
}else{
    echo '信息不能再或者不属于你的。';
    exit();
}
ログイン後にコピー

削除操作:

// 删除操作
// 跟修改更新同样,删除之前需要判断当前删除的记录是否存在(如果还有图片附件,需要先删除附件再删除记录)
$mysqli = mysqli_connect('localhost', 'root', '', 'php_course');
if(mysqli_connect_errno()){
    echo '连接数据库失败:'.mysqli_connect_error();
    exit;
}
$sql = "DELETE FROM feedback WHERE id = 3";
$result = mysqli_query($mysqli, $sql); // 返回一个资源标识符,通常是数字
if(FALSE !== $result){
    // 删除成功
}
ログイン後にコピー

このセクションでは主に php mysql 操作について説明し、SQL ステートメントは比較的頻繁に使用されます。 used. ですが、これは将来的に一般的に使用されるいくつかの構文にすぎません。

  • 1. レコードを検索するために選択します
  • 2. データを挿入するために挿入します
  • 3. データを変更するために更新します
  • 4. 削除するデータの削除 (これはハード削除であり、永久に削除され、通常は取得できません。ソフト削除もあります。これについては今後説明します)

学生はこれらを頻繁に練習して暗記することを忘れないでください。それらをマスターするための操作。学習プロセス中に問題が発生した場合は、いつでも下のコメント領域で議論することができます。
わかりました。このセクションはこれで終わりです。次のセクションでは、コードを整理して読みやすくします。

以上がPHP7 掲示板開発の準備の第 2 ステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jianshu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート