错误提示就如标题所示,网上也找了一圈,差不多都是说没有开启php_mysqli模块,我的wampserver环境本身已经开启,但是我还是去重新关闭在开启,结果都是一样,有一点很奇怪,网上一般都是在链接数据库的时候失败,但是我链接数据库没有提示失败,而是在使用mysqli_num_row时候出现错误
下面先上下我在查看phpinfo下mysqli下的开启情况
mysqli
MysqlI Support enabled
Client API library version mysqlnd 5.0.8-dev - 20102224 - $Id: 65fe78e70ce53d27a6cd578597722950e490b0d0 $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
Directive Local Value Master Value
mysqli.allow_local_infile On On
mysqli.allow_persistent On On
mysqli.default_host no value no value
mysqli.default_port 3306 3306
mysqli.default_pw no value no value
mysqli.default_socket no value no value
mysqli.default_user no value no value
mysqli.max_links Unlimited Unlimited
mysqli.max_persistent Unlimited Unlimited
mysqli.reconnect Off Off
下面是我的代码部分
<?phprequire ('inc/config.php');$page_title = '注册-CNode博客';include ('inc/header.php');if ($_SERVER['REQUEST_METHOD'] == 'POST') { require (MYSQL); $trimmed = array_map('trim', $_POST); $errors = array(); if ($_POST['code'] != $_SESSION['code']) { $errors[] = '验证码不正确!'; } if(empty($trimmed['username'])) { $errors[] = '用户名不能为空'; } else { if (preg_match ('/^[A-Z \'.-]{5,20}$/i', $trimmed['username'])) { $un = mysqli_real_escape_string ($conn, $trimmed['username']); } else { $errors[] = '您的用户名格式不对'; } } if(empty($trimmed['email'])) { $errors[] = '电子邮件地址不能为空'; } else { if (filter_var($trimmed['email'], FILTER_VALIDATE_EMAIL)) { $e = mysqli_real_escape_string ($conn, $trimmed['email']); } else { $errors[] = '您的电子邮件地址格式不对'; } } if(!empty($trimmed['password'])) { if (preg_match ('/^\w{4,20}$/', $trimmed['password']) ) { if ($trimmed['password'] == $trimmed['notpassword']) { $p = mysqli_real_escape_string ($conn, $trimmed['password']); } else { $errors[] = '登录密码和确认密码不一致'; } } else { $errors[] = '请输入有效的登录密码'; } } else { $errors[] = '登录密码不能为空'; } if(empty($trimmed['notpassword'])) { $errors[] = '确认密码不能为空'; } if (empty($errors)) { // 确定电子邮件是否被使用 $q = "SELECT user_id FROM users WHERE email='$e'"; $r = mysqli_query ($conn, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($conn)); if (mysqli_num_row($r) == 0) { // 如果查询验证电子邮件地址未被使用,则注册用户 $a = md5(uniqid(rand(), true)); // 创建一个激活码(创建一个长度正好为32个字符的字符串) $q = "INSERT INTO users (username, email, password, active, registration_date) VALUES ('$un', '$e', SHA1('$p'), '$a', NOW() )"; $r = mysqli_query ($conn, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($conn)); if (mysqli_affected_rows($conn) == 1) { $body = "感谢您的注册,激活您的帐户,请点击这里:\n\n"; $body .= BASE_URL . 'activate.php?x=' . urlencode($e) . "&y=$a"; mail($trimmed['email'], '确认注册', $body, 'From: 414412984@qq.com'); echo '<h3 id="感谢您的注册-一封确认邮件已经发送到您的邮箱-请在该电子邮件中单击链接-以激活您的帐户">感谢您的注册!一封确认邮件已经发送到您的邮箱。请在该电子邮件中单击链接,以激活您的帐户。</h3>'; exit(); } else { echo '<p class="error">用户注册失败,为此我们表示抱歉,请在注册一次</p>'; } } else { // 查询验证出来的电子邮件地址已经被注册 echo '<p class="error">电子邮件地址已经被注册</p>'; } } else { foreach ($errors as $msg) { // Print each error. echo " - $msg<br />\n"; } } mysqli_close($conn);}?><div class="wrap login"> <div class="path"><a href="#">主页</a> > 注册</div> <div class="info"> <form method="post" name="register" action=""> <p> <label for="username">用户名:</label><input type="text" name="username" id="username" class="text" value="<?php if (isset($trimmed['username'])) echo $trimmed['username']; ?>" /> <span>限5~20个字符,可用中文、英文、数字及“_”、“-”组成</span> </p> <p> <label for="email">电子邮件:</label><input type="text" name="email" id="email" class="text" value="<?php if (isset($trimmed['email'])) echo $trimmed['email']; ?>" /> <span>请填写您的常用邮箱,它是您激活帐号和找回密码的凭证!</span> </p> <p> <label for="password">登录密码:</label><input type="password" name="password" id="password" class="text" value="<?php if (isset($trimmed['password'])) echo $trimmed['password']; ?>" /> <span>密码由4-20位字母、数字组成</span> </p> <p> <label for="notpassword">确认密码:</label><input type="password" name="notpassword" id="notpassword" class="text" value="<?php if (isset($trimmed['notpassword'])) echo $trimmed['notpassword']; ?>" /> <span>请再次输入密码</span> </p> <p> <label for="yzm">验证码:</label><input type="text" name="code" id="yzm" class="text1" /> <img src="/static/imghwm/default1.png" data-src="code.php" class="lazy" id="code" / alt="エラー メッセージ: 致命的なエラー: 未定義の関数 mysqli_num_row() の呼び出し" > <span>看不清,请重新点击验证码(注意大小写)</span> </p> <div class="submit"> <input type="submit" name="submit" class="btn-1" value="立即注册" /> </div> </form> </div> </div> <?phpinclude ('inc/footer.php');?>
回复讨论(解决方案)
print_r(get_extension_funcs('mysqli'));
你自己看看有没有
Array
(
[0] => mysqli_affected_rows
[1] => mysqli_autocommit
[2] => mysqli_change_user
[3] => mysqli_character_set_name
[4] => mysqli_close
[5] => mysqli_commit
[6] => mysqli_connect
[7] => mysqli_connect_errno
[8] => mysqli_connect_error
[9] => mysqli_data_seek
[10] => mysqli_dump_debug_info
[11] => mysqli_debug
[12] => mysqli_errno
[13] => mysqli_error
[14] => mysqli_error_list
[15] => mysqli_stmt_execute
[16] => mysqli_execute
[17] => mysqli_fetch_field
[18] => mysqli_fetch_fields
[19] => mysqli_fetch_field_direct
[20] => mysqli_fetch_lengths
[21] => mysqli_fetch_all
[22] => mysqli_fetch_array
[23] => mysqli_fetch_assoc
[24] => mysqli_fetch_object
[25] => mysqli_fetch_row
[26] => mysqli_field_count
[27] => mysqli_field_seek
[28] => mysqli_field_tell
[29] => mysqli_free_result
[30] => mysqli_get_connection_stats
[31] => mysqli_get_client_stats
[32] => mysqli_get_charset
[33] => mysqli_get_client_info
[34] => mysqli_get_client_version
[35] => mysqli_get_host_info
[36] => mysqli_get_proto_info
[37] => mysqli_get_server_info
[38] => mysqli_get_server_version
[39] => mysqli_get_warnings
[40] => mysqli_init
[41] => mysqli_info
[42] => mysqli_insert_id
[43] => mysqli_kill
[44] => mysqli_more_results
[45] => mysqli_multi_query
[46] => mysqli_next_result
[47] => mysqli_num_fields
[48] => mysqli_num_rows 这个是你要的吗?但你写错了
[49] => mysqli_options
[50] => mysqli_ping
[51] => mysqli_poll
[52] => mysqli_prepare
[53] => mysqli_report
[54] => mysqli_query
[55] => mysqli_real_connect
[56] => mysqli_real_escape_string
[57] => mysqli_real_query
[58] => mysqli_reap_async_query
[59] => mysqli_rollback
[60] => mysqli_select_db
[61] => mysqli_set_charset
[62] => mysqli_stmt_affected_rows
[63] => mysqli_stmt_attr_get
[64] => mysqli_stmt_attr_set
[65] => mysqli_stmt_bind_param
[66] => mysqli_stmt_bind_result
[67] => mysqli_stmt_close
[68] => mysqli_stmt_data_seek
[69] => mysqli_stmt_errno
[70] => mysqli_stmt_error
[71] => mysqli_stmt_error_list
[72] => mysqli_stmt_fetch
[73] => mysqli_stmt_field_count
[74] => mysqli_stmt_free_result
[75] => mysqli_stmt_get_result
[76] => mysqli_stmt_get_warnings
[77] => mysqli_stmt_init
[78] => mysqli_stmt_insert_id
[79] => mysqli_stmt_more_results
[80] => mysqli_stmt_next_result
[81] => mysqli_stmt_num_rows
[82] => mysqli_stmt_param_count
[83] => mysqli_stmt_prepare
[84] => mysqli_stmt_reset
[85] => mysqli_stmt_result_metadata
[86] => mysqli_stmt_send_long_data
[87] => mysqli_stmt_store_result
[88] => mysqli_stmt_sqlstate
[89] => mysqli_sqlstate
[90] => mysqli_ssl_set
[91] => mysqli_stat
[92] => mysqli_store_result
[93] => mysqli_thread_id
[94] => mysqli_thread_safe
[95] => mysqli_use_result
[96] => mysqli_warning_count
[97] => mysqli_refresh
[98] => mysqli_escape_string
[99] => mysqli_set_opt
)
真是和你说的一样,太粗了心,你给的方法很直观,谢谢

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
