mysqli 相关问题

mysqli PHP扩展(“MySQL改进”)是PHP数据库驱动程序,包含自PHP 5以来。它利用了MySQL 4.1.3和更新版本中引入的新功能。

PHP mysqli 获取与查询不匹配的行

我试图根据类型列的内容使用 php mysqli 获取一些行,但是结果与查询不匹配。 我当前的代码是这样的: $stmt = $conn->prepare("选择 * FROM

回答 1 投票 0

从table1中选择id为table2中记录的记录

我有两张桌子;教师表和班级表如下图: 表老师 id 名称 类 1 - 约翰 - 1,3,4 2 - 弗雷德 - 1,2 3 - 格蕾丝 - 4 4 - 杰克 - 2,3 表类 id 名称 类代码 1 -

回答 1 投票 0

我想检索表中不可用且 CTE 不起作用的日期

我有每个日期的产品市场和价格表,但表中缺少一些日期,我想要给定范围内的所有日期的日期,以及哪个日期不在表中,价格取...

回答 1 投票 0

Mysql 单个查询中的 Join、Group by 和求和

我有2张桌子: 表 tms_invoices id load_id 公司名称 金额 1 11 公司1 40 2 11 公司1 30 3 11 公司2 ...

回答 1 投票 0

php 登录方法未按预期工作

所以我使用下面的代码有我的登录页面,但是验证代码不能很好地工作,它要么让我使用任何密码进入,要么根本不让我进入 初始化.php: 所以我的登录页面使用下面的代码,但是验证代码不能很好地工作,它要么让我使用任何密码进入,要么根本不让我进入 init.php: <?php date_default_timezone_set('Asia/Riyadh'); $error = ['Username' => '', 'Email' => '', 'Password' => '']; $input = ['Username' => '', 'Email' => '', 'Password' => '']; session_start(); $config = require 'config.php'; $db = new mysqli(...$config['db']); $db->set_charset($config['db_charset']); ?> 注册.php: <?php require 'init.php'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { // input validation $Username = $input['Username'] = trim(filter_input(INPUT_POST, 'Username')); if (mb_strlen($Username) < 3 || mb_strlen($Username) > 30) { $error['Username'] = 'Please enter your name, it must be from 3 to 30 charaters long.'; echo "<p class='Center'> <font color=White size='50pt'>Username should be at least 3 characters long!</font> </p>"; } $Email = $input['Email'] = trim(filter_input(INPUT_POST, 'Email')); if (!filter_var($Email, FILTER_VALIDATE_EMAIL)) { $error['Email'] = 'Please enter a valid email address.'; echo "<p class='Center'> <font color=White size='50pt'>Please enter a valid email address!</font> </p>"; } else { $result = $db->execute_query("SELECT 1 FROM users WHERE email = ?", [$Email]); if ($result->fetch_row()) { $error['Email'] = 'Email address already taken.'; echo "<p class='Center'> <font color=White size='50pt'>Email address already taken.Please Login!</font> </p>"; } } $Password = filter_input(INPUT_POST, 'Password'); if (strlen($Password) < 3 || strlen($Password) > 72) { $error['Password'] = 'Please enter password, it must be from 3 to 72 characters long.'; echo "<p class='Center'> <font color=White size='50pt'>Password should be at least 3 characters long!</font> </p>"; } // if no errors if (implode("", $error) === '') { // Password MUST be hashed using the dedicated function $Password = password_hash($input['Password'], PASSWORD_DEFAULT); $VIP= "NO"; $Admin = "NO"; $Creation_date = date('d-M-Y h:i:s A'); $Last_Login = date('d-M-Y h:i:s A'); $Login_Times=1; // a parameterized query MUST be used to avoid errors and injections $stmt = $db->prepare("INSERT INTO Users (Username, Email, Password, VIP, Admin, Creation_Date, Last_login, Login_Times) VALUES (?,?,?,?,?,?,?,?)"); $stmt->execute([ $Username, $Email, $Password, $VIP, $Admin, $Creation_date, $Last_Login, $Login_Times, ]); echo "<p class='Center'> <font color=White size='50pt'>Registeration successful</font> </p>"; $_SESSION['Email'] = $Email; header("Location: home.php"); die; } } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="refresh" content="4;URL=login.php"> <link rel="stylesheet" href="Styles/General.css"> <link rel="stylesheet" href="Styles/Background.css"> <link rel="icon" href ="favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> <title>Register & Login</title> </head> <body class="Blue-Black"> <h1 class="Center">Please wait, you will be automatically redirected to the login & registeration page.</h1> </body> </html> Validation.php:(这是问题) <?php require 'init.php'; $Email = $input['Email'] = trim(filter_input(INPUT_POST, 'Email')); // i use one of the 3 below $Password = $input['Password']; //if i use this it lets me in with any password $Password = $_POST['Password']; // if i use this it doesn't let me in at all $Password = filter_input(INPUT_POST, 'Password'); // if i add this to 1/ if i don't it still doesn't let me in $result = $db->execute_query("SELECT Email FROM Users WHERE Email = ?", [$Email]); if ($result->fetch_row()) { $select = "SELECT Password FROM Users WHERE Email = ?;"; $result2 = $db ->execute_query($select, [$Email]) ; $Get_hash = $result2 ->fetch_assoc(); $hash = $Get_hash['Password']; if (password_verify($Password, $hash)) { $_SESSION['Email'] = $Email; $Date = date('d-M-Y h:i A'); $Update = "UPDATE Users SET Last_Login = ?, Login_Times = Login_Times + 1 WHERE Users.Email = ?"; $stmt = $db->execute_query($Update, [$Date, $Email]); header('location:home.php'); }else{ echo "<p class='Center'> <font color=White size='50pt'>Invalid Password. Try again!</font> </p>"; } }else{ echo "<p class='Center'> <font color=White size='50pt'>There is no account associated with this email address please sign up!</font> </p>"; } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="refresh" content="4;URL=login.php"> <link rel="stylesheet" href="Styles/General.css"> <link rel="stylesheet" href="Styles/Background.css"> <link rel="icon" href ="favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> <title>Register & Login</title> </head> <body class="Blue-Black"> <h1 class="Center">Please wait, you will be automatically redirected to the login & registeration page.</h1> </body> </html> 登录.php <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="Styles/Bootstrap.css"> <link rel="stylesheet" href="Styles/Font-Awesome.css"> <link rel="stylesheet" href="Styles/General.css"> <link rel="stylesheet" href="Styles/Login.css"> <link rel="icon" href ="favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> <title>Register & Login</title> </head> <body> <a class="btn btn-danger" href="index.html">Cancel</a> <div> <h1 class="px20">Please Login after you Register if you don't have an account.</h1> <div> <div class="form-box"> <div class="button-box"> <div id="btn"></div> <button type="button" class="toggle-btn" onclick="Login()"> Login </button> <button type="button" class="toggle-btn" onclick="Register()"> Register </button> </div> <form action="validation.php" method="POST" id="Login" class="input-group"> <input type="Email" name="Email" class="input-field" placeholder="Email" required> <input type="Password" name="Password" id="Password" class="input-field" placeholder="Password" required> <i class="far fa-eye" id="togglePassword"></i> <button type="submit" class="submit-btn">Login</button> </form> <form action="registeration.php" method="POST" id="Register" class="input-group"> <input type="Email" name="Email" class="input-field" placeholder="Email" required> <input type="text" name="Username" class="input-field" placeholder="Username" required> <input type="Password" name="Password" class="input-field" id="Password2" placeholder="Password" required> <i class="far fa-eye" id="togglePassword2"></i> <button type="submit" class="submit-btn">Register</button> </form> </div> </div> </div> <script src="Scripts/Login.js"></script> </body> </html> 出了点问题,但我不太明白(注意:我是 php 和 mysql 的新手,所以详细的解释将不胜感激,请不要评判我仍在学习,所以这个错误对于专业人士来说可能并不困难 您不是对用户的密码进行哈希处理,而是对 $input 中的空默认密码进行哈希处理(这个变量的用途是什么?)。改变 $Password = password_hash($input['Password'], PASSWORD_DEFAULT); 到 $Password = password_hash(Password, PASSWORD_DEFAULT);

回答 1 投票 0

mysql中使用min(date)后如何返回同一行的数据

选择 customer_id、min(order_date) 作为first_date、customer_pref_delivery_date 从交货 按 customer_id 分组 按客户 ID 排序; 这是输入表 Delivery: 送货ID 客户ID

回答 1 投票 0

execute_query 和prepare+execute 有什么区别?

使用execute_query()[1]或使用prepare()然后execute()[2]有什么区别,什么时候使用bind参数,为什么?就像示例 [2] 中一样,我们已经给出了变量 wi...

回答 2 投票 0

mysqli_connect 不适用于 MAMP

下面的代码可以在我的带有 MAMP 的旧 iMac 上运行。但是,它在我的新 iMac 上不起作用。我该如何解决?我需要对 php.ini 文件做些什么吗? 下面的代码可以在我的旧 iMac 上使用 MAMP 运行。但是,它在我的新 iMac 上不起作用。我该如何解决?我需要对 php.ini 文件执行某些操作吗? <?php $dbConnection = mysqli_connect("localhost", "xxxx", "xxxx", "gallery"); $query = "SELECT * FROM images"; $stmt = mysqli_prepare($dbConnection,$query); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $id, $categories,$img_name); while (mysqli_stmt_fetch($stmt)) { echo $id."<br />"; } ?> 我花了一天的时间来解决这个问题,然后 (localhost) MAMP 主页上的以下内容引起了我的注意:如果您运行的是 PHP 版本 5.5.x 或更早版本,mysqli_connect() 应该可以正常工作,但是如果您如果您使用的是 PHP 5.6.x 或更高版本,请尝试 mysqli_init() 并查看是否适合您。这对我有用!它显示在“示例”标题下。祝你好运! 您应该在 PHP.ini 中启用 php_mysqli 扩展。默认情况下它是禁用的。 查找以下行:extension=php_mysqli 问题:绑定语句中缺少列名。

回答 3 投票 0

执行函数之间的区别

使用execute_query[1]和使用prepare thenexecute[2]有什么区别,什么时候使用bind参数,为什么?就像示例 [2] 中一样,我们已经在

回答 1 投票 0

php 中的登录次数计数器

我有一个数据库,我正在尝试使用 php 计算登录次数,这是我的代码: $GetLoginTimes = "从用户表中选择 Login_Times,其中 email = '$email'"; $GetLoginTimes2 =

回答 3 投票 0

SQL - 如何使其成为 JOIN ON 语句 [已关闭]

选择姓氏、名字、电话 来自客户、销售、SALE_ITEM、ITEM 其中 CUSTOMER.CustomerID = SALE.CustomerID AND SALE.SaleID = SALE_ITEM.SaleID AND SALE_ITEM.ItemID = ITEM.Ite...

回答 1 投票 0

如何按最短字符串或从第一个字符开始最相关的方式按sql顺序选择字符串

我的 php 中有一个查询,如下所示: $查询= 选择 ydzdn_terms.term_id,ydzdn_terms.name 来自 ydzdn_terms 内连接 ydzdn_term_taxonomy on (ydzdn_terms.term_id=ydzdn_term_taxon...

回答 1 投票 0

解析错误:语法错误,意外的字符串内容“”,需要“-”或标识符或变量或数字

我的代码中的错误在哪里,请帮助我,当我更改我的托管时出现此错误。在旧主机上,我的代码工作正常,但在新主机上,出现此错误,我无法使用我的

回答 1 投票 0

为什么 PHP 在 mysqli_connect 失败时不显示我的自定义错误消息?

我正在尝试连接到数据库,当我尝试一切正确时,数据库会连接,一切都很好。但是,当我尝试使用一些错误的凭据进行连接时,它会抛出...

回答 1 投票 0

为什么PHP无法隐藏MySQL连接抛出的错误信息?

我正在尝试连接到数据库,当我尝试一切正确时,数据库会连接,一切都很好。但是,当我尝试使用一些错误的凭据进行连接时,它会抛出...

回答 1 投票 0

php中的preg_match是什么?

我遇到了这段使用正则表达式来验证密码的 PHP 代码,但我无法理解它: if(!preg_match('/^(?=.\d)(?=.[a-z])(?=.[A-Z])(?=.[!@#$%])[0-9A-.. .

回答 1 投票 0

MySQLi stmt num_rows 返回 0

我在 PHP 中使用 $stmt->num_rows 时遇到问题,我不确定我做错了什么。 $stmt->num_rows 在应该返回 1 的时候却返回 0。查询确实有效并返回 1...

回答 1 投票 0

有没有办法同时运行store_result和get_result

我正在尝试在同一查询中使用 store_result() 和 get_result() 但它说 调用布尔值的成员函数 fetch_assoc() 这个链接使用了它们,我想它适用于......

回答 2 投票 0

在Handsontable中删除一行时,我希望它也能在mysql数据库中删除它

我一直在尝试从我的handsontable(它显示数据库中的行)中删除行,但我找不到使用“删除行”选项删除它们的解决方案。计划是...

回答 1 投票 0

从 Handsontable PHP 中删除行

我一直在尝试从我的handsontable(它显示数据库中的行)中删除行,但我找不到使用“删除行”选项删除它们的解决方案。 我尝试过使用...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.