pdo 相关问题

PDO(PHP数据对象)是PHP的数据访问抽象层(接口)。它适用于大多数数据库系统。

Php 脚本在使用 mysqlrouter 创建“新 PDO”对象时挂起

我参考以下问题: PHP 脚本在“新 PDO”对象创建时挂起 这个问题已经被问了很长时间了,但我对 mysqlrouter 也有完全相同的问题。 PDO 连接挂起...

回答 1 投票 0

如何使用 LIMIT 子句传递 PDO 参数数组?

$sql = "从表中选择 * WHERE id LIKE CONCAT('%', :id, '%') 限制:限制1,:限制2”; 我想仍然使用这样的数组输入: $stmt->执行($array); 否则我无法重复使用相同的

回答 3 投票 0

防止“&”变成&。保存到数据库时的编码

我使用sql server 2008并且我有PDO连接 $con = new \PDO("sqlsrv:Server={$config['server']};Database={$config['database']}", $config['用户名'], $config['密码'] ); $con->setAttr...

回答 4 投票 0

Php pdo 从 mysql 变量执行查询

我正在创建动态mysql查询,我需要选择除主键列之外的*列。然后,我需要使用 pdo 在 php 中获取该列的数据。 $qry_getData="选择

回答 1 投票 0

php pdo:获取表的列名

如何使用 PDO 从表中获取所有列名? 身份证 姓名 年龄 1 艾伦 35 2 亚历克斯 52 3 艾米 15 我想要的信息...

回答 15 投票 0

我想从sql中获取文件名来删除文件

函数删除数据($id){ $sqlStates = $db->query("SELECT * FROM products WHERE id = ?"); $sqlState->执行([$id]); $product = $sqlStates->fetch(PDO::FETCH_OBJ);

回答 1 投票 0

语法错误或访问冲突:1064 您的 SQL 语法有错误;使用 JSON_TABLE [Symfony] 时

我在 symfony 上创建了一个自定义存储库查询来计算价格。这是查询: $sql = " 选择 SUM(sub.totalPriceWT) AS 总价格, ...

回答 1 投票 0

PDO 获取数据返回字符串数组

我正在尝试使用 PDO 从 MySQL 数据库获取数据,但不幸的是 PDO 将结果作为字符串数组返回。我想在结果数组中保留本机 MySQL 数据类型。 我试过了

回答 1 投票 0

使用 fetch_assoc 返回准确的 ID

我的代码有一个小问题。我正在使用 fetch_assoc 从数据库获取数据,并且需要获取每个返回值的 ID 号。问题是我的代码只返回...的 ID 号

回答 2 投票 0

如何通过PHP+SSH连接远程MySQL?

我正在尝试通过 PHP 连接到 MySql 数据库。该数据库正在远程服务器上运行,我可以访问该服务器。但我无法建立连接。 我已经在这里研究了很多才能找到......

回答 1 投票 0

SSL 证书验证过程中出现 pdo_sqlsrv 错误

使用 ubuntu 22、php8.2、odbc 驱动程序 18、OpenSSL 3.0.2,当我尝试使用 pdo_sqlsrv 连接 sqlsrv 数据库时,它返回以下错误: SQLSTATE[08001]:[Microsoft][SQL 的 ODBC 驱动程序 18 ...

回答 1 投票 0

本地和生产 Laravel 项目之间响应数据类型的差异

我在本地 XAMPP 服务器和生产服务器上运行的 Laravel 项目遇到了令人费解的问题。本地服务器使用 PHP 8.2.4 和 Apache 2.4.56,而生产服务...

回答 1 投票 0

SQLSTATE[HY093]:参数编号无效:绑定变量的数量与令牌的数量不匹配,我是用于连接数据库的新ussin pdo

$query="INSERT INTO users (用户名,密码,电子邮件)值(':userName',':pwd',':Email')"; $stmt=$pdo->准备($query); $stmt->bindParam(':用户名',$用户名); $stmt->bin...

回答 1 投票 0

JavaScript 中的 PHP 转义

我正在尝试从数据库查询输出项目描述。 这是一段代码,应该输出带有名称等的描述...... 我正在尝试从数据库查询中输出项目描述。 这是一段应该输出带有名称等描述的代码... <?PHP $type = "item"; $limit = 16; $preparedStatement = $SQL->prepare('SELECT * FROM z_shop_offer WHERE offer_type = :type LIMIT :limit'); $preparedStatement->bindParam(':type', $type, PDO::PARAM_STR); $preparedStatement->bindParam(':limit', $limit, PDO::PARAM_INT); $preparedStatement->execute(); if ($preparedStatement->rowCount() > 0) { // Define how we want to fetch the results $preparedStatement->setFetchMode(PDO::FETCH_ASSOC); $iterator = new IteratorIterator($preparedStatement); foreach ($iterator as $item) { echo ' <div class="ServiceID_Icon_Container" id="ServiceID_Icon_Container_'.$item['id'].'"> <div class="ServiceID_Icon_Container_Background" id="" style="background-image:url('.$layout_name.'/images/serviceid_icon_normal.png);"> <div class="ServiceID_Icon" id="ServiceID_Icon_'.$item['id'].'" style="background-image:url(' . $config['site']['item_images_url'] . $item['itemid1'] . $config['site']['item_images_extension'] . ');" onclick="ChangeService('.$item['id'].', 12);" onmouseover="MouseOverServiceID('.$item['id'].', 12);" onmouseout="MouseOutServiceID('.$item['id'].', 12);"> <div class="PermanentDeactivated"> <span class="HelperDivIndicator" onmouseover="ActivateHelperDiv($(this), \''.$item['offer_name'].'\', \''.htmlentities($item['offer_description']).'<BR><BR>\', \'\');" onmouseout="$(\'#HelperDivContainer\').hide();"> <div class="ServiceID_HelperDiv"></div> </span> </div> </div> </div> </div> '; } } ?> 我已经尝试过htmlentities、htmlspecialchars和addslashes。 这是存储在数据库中的描述(在这个数据库中,它停止显示带有描述的工具提示。 激活一小时 1.5 倍经验。它只有一项费用。 当一个注入处于活动状态时使用任何其他注入只会叠加它的 时间而不是经验。如果您注销或,时间不会停止 死吧。 如何正确转义/输出描述? 您可能遇到的问题是您需要双重转义数据。你需要: 首先将其转义为 HTML 第二个是 JavaScript。 所以除了 json_encode() 之外还需要使用 htmlspecialchars。 onmouseover="'.htmlspecialchars( 'ActivateHelperDiv($(this), '.json_encode($item['offer_name']).')' ).'">' 在这里,您对整个属性值使用 htmlspecialchars,对从 PHP 传递到 JavaScript 的值使用 json_encode

回答 1 投票 0

如何使用 PDO::quote 转义 LIKE 表达式中的字符串?

我尝试使用 PDO::quote 转义 LIKE 表达式中的字符串,因此用户字符串不得像以下那样被包围: 喜欢“%userStringToEscape%” 有办法做到吗?

回答 3 投票 0

我在用户表单中上传图像的代码有什么问题?

我目前正在做一个涉及mysql和php的项目。我创建了一个表单来捕获用户详细信息(包括护照),但每当用户填写表单并单击“提交”时,它就会变成空白

回答 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

致命错误:在 null 上调用成员函数prepare()

我正在尝试访问类别及其内容的列表。我有一个名为“类别”的课程。我不断收到此错误。奇怪的是我在另外两个地方使用了同样的代码......

回答 5 投票 0

PDO - array_map 返回键中的对象 ID

嘿我有带有返回键的数组 $temp = $sth->fetchAll(PDO::FETCH_ASSOC); 我的结果如下所示: [0] => [ ‘id’ = 11, '标题' => 't1' ] [1] => [ ‘id’ = 12, 不是...

回答 3 投票 0

PHP 在不设置变量的情况下获取 PDO 数组的值?我该怎么办?

所以我通过 PDO 从数据库中提取一列,我想直接回显它而不分配变量。 query(“从类别中选择名称,其中代码 = '{$_GET['代码...

回答 2 投票 0

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