mysqli 相关问题

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

此 php 配置中是否启用了 mysqli 扩展?

我有一个用 php 设计的网站,带有 mysqli(mysql - 改进)扩展。 phpinfo() 页面显示如下: ./configure --disable-fileinfo --disable-phar --enable-bcmath --enable-calendar --enable-f...

回答 3 投票 0

如何使用 PDO 创建简单的分页

if (isset($_GET['page_no']) && $_GET['page_no']!="") { $page_no = $_GET['page_no']; } 别的 { $page_no = 1; } $total_records_per_page = 9; $offset = ($page_n...

回答 1 投票 0

获取在同一表的不同列中具有多个 id 值的损坏用户

一张有 4 列的表中有大约 500 万个用户,对于 userid 列中的每个值,同一张表中只需要有一个 sid 值。但有一些损坏的记录,其中一些用户 ID

回答 1 投票 0

插入包含html实体的字符串时,字符串被截断

我有一个类似于下面的表格。 ... 我有一个类似于下面的表格。 <form action="" method="POST"> <input type="text" name="header" /> <textarea id="ck_editor" name="content"></textarea> </form> 发送表单时,我将 Ğ, Ş, Ü 等特殊字符替换为相应的 html 实体。然后使用 PHP/MySQLI 将编辑后的字符串插入数据库。 content 插入没有任何问题。但是到了header,就在特殊字符位置之后被切掉了。 当我想插入时 土耳其卡拉克特 它像一样插入到表格中 T 我回显 header, content 变量 - 没有任何问题 - 通知插入过程是否成功。 MySQL 表 icerik_id INT(11) AUTO_INCREMENT PRIMARY icerik_baslik VARCHAR(255) icerik_icerik TEXT icerik_durum INT(11) DEFAULT = '1' collation utf8_unicode_ci 如何解决这个问题? PHP 代码 // (icerik = 内容) (baslik = 标题) if ($_POST) { ... if ($ekle == true) { // Girdileri Düzenle // HTML Entity $baslik = htmlentities($baslik, ENT_COMPAT, "UTF-8"); $icerik= htmlentities($icerik, ENT_COMPAT, "UTF-8"); $ekle_db = $db->query("INSERT INTO icerikler SET icerik_baslik = '$baslik', icerik_icerik = '$icerik' "); if ($ekle_db) { $ekle_msg[] = "<span style='color: rgba(140,200,30,1)'>İçerik Başarıyla Eklendi:</span> $baslik"; $ekle = true; } else { $ekle_msg[] = "<span style='color: red'>İçerik Eklenenemdi.</span>"; $ekle = false; } } ... } 我认为你需要使用 utf8_turkish_ci

回答 1 投票 0

如何禁用某个虚拟主机的 php mysqli 扩展

如何在 apache2 中禁用某些虚拟主机的 mysqli?我尝试在 /etc/apache2/apache2.conf 中添加指令 php_flag mysqli 关闭 如何在 apache2 中禁用某些虚拟主机的 mysqli?我尝试在 /etc/apache2/apache2.conf 中添加指令 <Directory /var/www/html/srv1> php_flag mysqli off </Directory> 但是没有用。还有其他方法可以存档吗? 一个简单的回答看起来“你不能”。 模块在 php 引擎级别启用,然后 apache 没有选项来管理它。 我看到了一些(或多或少)解决方法的选项: 主要是丑陋,在 vhost 配置中设置一些 mysqli 配置来破坏其默认行为。在这种情况下,要设置的配置在https://www.php.net/manual/fr/mysqli.configuration.php中有解释。可能都是默认选项。 使用 php-fpm 并提供不带 mysqli 模块的配置 使用 php-fpm 并设置特定的disable_function 无论如何,我没有看到任何正确的解决方案来做到这一点。也许可以重新考虑最初的问题以提出适当的答复:)

回答 1 投票 0

PHP 准备语句未插入,没有出现错误

我正在尝试通过 PHP 中的准备好的语句插入一些数据。我有以下代码,但没有为我插入。我也已经设置了以下代码 ini_set('显示错误', 1...

回答 1 投票 0

调用未定义的方法 mysqli::execute_query()

这是我使用的文件: modeloBd.php 这是我使用的文件: modeloBd.php <?php class modeloBd { private static $server = "127.0.0.1"; private static $user = "root"; private static $password = ""; private static $dbname = "bd"; protected $conn; protected function __construct() { $conexion = new mysqli(self::$server, self::$user, self::$password, self::$dbname); if ($conexion->connect_error) { die("Error en la conexión a la base de datos: " . $conexion->connect_error); } else { $this->conn = $conexion; } } } modeloLogin.php <?php require_once "modeloBd.php"; class modeloLogin extends modeloBd { public function __construct() { parent::__construct(); } public function existe($ci) { $query = "SELECT * FROM `Usuarios` WHERE ci = ? LIMIT 1"; $result = $this->conn->execute_query($query, [$ci]); $num = mysqli_num_rows($result); return $num; } controladorLogin.php <?php require '../Modelo/modeloLogin.php'; require '../Modelo/modeloToken.php'; class controladorLogin { public static function chequear($content) { $ci = $content['post']['ci']; $contrasenia = $content['post']['contrasenia']; $l = new modeloLogin(); if ($l->existe($ci)) { //code } } } 我只需要让我的查询在这里工作: public function existe($ci) { $query = "SELECT * FROM `Usuarios` WHERE ci = ? LIMIT 1"; **$result = $this->conn->execute_query($query, [$ci]);** $num = mysqli_num_rows($result); return $num; } 但是系统却给了我这个错误: 致命错误:未捕获错误:调用 C:\xampp\htdocs\main\Modelo\modeloLogin.php:13 中未定义的方法 mysqli::execute_query() 堆栈跟踪:#0 C:\xampp\htdocs\main\控制

回答 0 投票 0

如何在codeigniter中使用BETWEEN条件?

代码: $最低工资 = 200000; 最大工资 = 500000; $标题=java; $this->db->select('*'); $this->db->from('工作'); $where = "((salary_range_min='".$salarymin."') 和 (salary_range_max='".$

回答 3 投票 0

如何使 mysql_ 数据库连接与 PHP 8 一起工作运输时间

运输时间 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Transit Times</title> </head> <body style="font-family:'Gill Sans', 'Gill Sans MT', 'Myriad Pro', 'DejaVu Sans Condensed', Helvetica, Arial, sans-serif; margin:0px; padding:0px"> <?php $orig = $_REQUEST['orig']; $dest = $_REQUEST['dest']; $connection = mysqli_connect("localhost","my_user","my_password","my_db"); $result = $mysqli->query("select * from transit where trans_orig = '$orig' and trans_dest = '$dest'"); $row = mysqli_fetch_array($query); ?> <h2>Transit Times between <?=$orig?> and <?=$dest?> </h2> <table cellpadding="2" cellspacing="0" border="1" bordercolor="#EF090D" > <tr style="font-weight:bold; background-color:#050F5B; color:#fff"> <td rowspan="2" align="center">M-F<br> Cutoff</td> <td rowspan="2" align="center">Sun<br> Cutoff</td> <td rowspan="2" valign="bottom">Avail</td> <td rowspan="2" valign="bottom">SVC</td> <td colspan="7" align="center">Ship Day / Recovery</td> </tr> <tr style="font-weight:bold; background-color:#050F5B; color:#fff"> <td>Mon</td> <td>Tue</td> <td>Wed</td> <td>Thu</td> <td>Fri</td> <td>Sat</td> <td>Sun</td> </tr> <tr> <td><?php echo $row['trans_mfcutoff'];?></td> <td><?php echo $row['trans_scutoff'];?></td> <td><?php echo $row['trans_avail'];?></td> <td><?php echo $row['trans_svc'];?></td> <td><?php echo $row['trans_mon'];?></td> <td><?php echo $row['trans_tue'];?></td> <td><?php echo $row['trans_wed'];?></td> <td><?php echo $row['trans_thu'];?></td> <td><?php echo $row['trans_fri'];?></td> <td><?php echo $row['trans_sat'];?></td> <td><?php echo $row['trans_sun'];?></td> </tr> </table> </body> </html> 我正在尝试连接到 PHP 8 上的数据库以在表中显示信息。我知道 mysql_ 已过时,但我不确定如何正确更新它以与 PHP 8 等新版本一起使用。我在连接到较新服务器上的数据库时遇到问题。你能帮忙吗? 您可以使用以下代码 mysqli 来代替: ... $orig = $_REQUEST['orig']; $dest = $_REQUEST['dest']; $sql = "select * from transit where trans_orig = '$orig' and trans_dest = '$dest'"; $dbAuth = new mysqli("localhost", "databaseuser", "databasepassword", "databasename"); $result = mysqli_query($dbAuth, $sql); $results = mysqli_fetch_all($result, MYSQLI_ASSOC); if (count($results) == 0) { die("No Results"); // Or handle the case yourself } $row = $results[0]; ...

回答 1 投票 0

获取下拉数据

问题是当我单击第一类时显示所有类数据。我希望当有人单击任何类时仅显示该类数据。我认为我的查询中的问题是我的代码 $x=$_POST['c_id']; ...

回答 1 投票 0

PDO 和 MySQLi 准备好的语句有什么区别?

这两个准备好的语句有什么区别? 1 $stmt = $pdo->prepare('从员工中选择 * WHERE name = :name'); $stmt->execute(array('name' => $name)); foreach ($stm...

回答 2 投票 0

倒计时数据未显示在 JavaScript php mysqli 中的每个循环卡中

我创建了一张卡片,想要显示同一张表的每一行的时间倒计时,并且循环运行良好,但计时器仅适用于第一个循环,然后它不适用于其他循环而不是...

回答 1 投票 0

未定义常量 MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT [重复]

当我使用 PHP、MySQLI 并激活 SSL 连接到外部 MySQL-DB (MariaDB 10) 时...: /* 创建一个未连接的连接对象 */ $conn = 新的 mysqli(); $conn->init(...

回答 1 投票 0

PHP MySqli、SSL 和 mysqli_real_escape_string 不起作用

当我使用 PHP、MySQLI 并激活 SSL 连接到外部 MySQL-DB (MariaDB 10) 时...: /* 创建一个未连接的连接对象 */ $conn = 新的 mysqli(); $conn->init(...

回答 1 投票 0

如果客户状态发生变化则SQL查询,如果状态没有变化则不需要记录

[为表和输出1添加的图片如下是表结构 id , status 和 datechange ID 英石 成田 123 1 2022年7月1日 123 1 2022年2月7日 123 1 2022年3月7日 123 1 2022年7月1日 145 1 2022年5月7日 ...

回答 1 投票 0

插入 MySql PHP [已关闭]

我正在尝试使用 PHP 将数据添加到 MySql 数据库中。 代码: 我正在尝试使用 PHP 将数据添加到 MySql 数据库中。 代码: <?php session_start(); include('config.php'); if(isset($_POST['Submit'])) { $city = $_POST['city']; $from_station = $_POST['from_station']; $from_date = $_POST['from_date']; // Prepare and execute the SQL query $sql = "INSERT INTO journeys (city, from_station, from_date) VALUES ('$city', '$from_station', '$from_date')"; $result = $conn->query($sql); if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } ?> <!DOCTYPE html> <html lang="pt_PT"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>IR PLANNER</title> <link rel="stylesheet" href="Styles\general_styles.css"> <link rel="stylesheet" href="Styles\citymanager_styles.css"> </head> <body> <form class="modal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <label for="city">City:</label> <input type="text" name="city" id="city"> <label for="from_station">From Station:</label> <input type="text" name="from_station" id="from_station"> <label for="from_date">From Date:</label> <input type="date" name="from_date" id="from_date"> <input type="submit" value="Submit" id="Submit"> </form> </body> </html> 按下提交按钮时,不会显示错误。然而,当检查数据库表时,什么也没有出现。 我已阅读文章,并且 sql 连接(config.php)工作正常(在其他页面和文件中工作)并且 sql 查询也很好。 有人遇到这个问题吗? 您需要在提交按钮中传递 name 属性,直到您无法从中获取任何值。在您的条件下,它总是返回 false。所以不会更新任何内容,也不会生成错误。只需更新这里是更新的代码。 <?php session_start(); include('config.php'); if(isset($_POST['Submit'])) { $city = $_POST['city']; $from_station = $_POST['from_station']; $from_date = $_POST['from_date']; // Prepare and execute the SQL query $sql = "INSERT INTO journeys (city, from_station, from_date) VALUES ('$city', '$from_station', '$from_date')"; $result = $conn->query($sql); if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } ?> <!DOCTYPE html> <html lang="pt_PT"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>IR PLANNER</title> <link rel="stylesheet" href="Styles\general_styles.css"> <link rel="stylesheet" href="Styles\citymanager_styles.css"> </head> <body> <form class="modal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <label for="city">City:</label> <input type="text" name="city" id="city"> <label for="from_station">From Station:</label> <input type="text" name="from_station" id="from_station"> <label for="from_date">From Date:</label> <input type="date" name="from_date" id="from_date"> <input type="submit" name="Submit" value="Submit" id="Submit"> </form> </body> </html> 您可以采取一些措施来分析问题/优化代码。 1.要调试代码:回显一个值以检查是否进入 if 语句 例如: if(isset($_POST['Submit'])) { var_dump(__LINE__); 现在运行代码以查看到达了哪些行。 2. if 语句中的代码不会被执行,因为: 此代码: <input type="submit" value="Submit" id="Submit"> 需要 name 属性,才能作为数据发送到服务器: <input type="submit" name="Submit" value="Submit" id="Submit"> 3.使用mysqliprepare准备sql语句 代替当前的插入代码,制作它 $stmt = $conn->prepare("INSERT INTO journeys (city, from_station, from_date) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $city, $from_station, $from_date); $stmt->execute(); 这样就不会发生SQL注入了。 4.在您的代码中,您还执行了两次 SQL。 在这些线上: $result = $conn->query($sql); if (mysqli_query($conn, $sql)) { 替换为第 3 点的代码。 生成的代码 <?php session_start(); include('config.php'); if(isset($_POST['Submit'])) { $city = $_POST['city']; $from_station = $_POST['from_station']; $from_date = $_POST['from_date']; // Prepare and execute the SQL query $stmt = $conn->prepare("INSERT INTO journeys (city, from_station, from_date) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $city, $from_station, $from_date); $stmt->execute(); } ?> <!DOCTYPE html> <html lang="pt_PT"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>IR PLANNER</title> <link rel="stylesheet" href="Styles\general_styles.css"> <link rel="stylesheet" href="Styles\citymanager_styles.css"> </head> <body> <form class="modal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <label for="city">City:</label> <input type="text" name="city" id="city"> <label for="from_station">From Station:</label> <input type="text" name="from_station" id="from_station"> <label for="from_date">From Date:</label> <input type="date" name="from_date" id="from_date"> <input type="submit" name="Submit" value="Submit" id="Submit"> </form> </body> </html>

回答 2 投票 0

在PHP中执行SQL查询时,没有显示错误,但数据库中看不到数据。我应该检查什么?

我正在尝试使用 PHP 将数据添加到 MySql 数据库中。 代码: 我正在尝试使用 PHP 将数据添加到 MySql 数据库中。 代码: <?php session_start(); include('config.php'); if(isset($_POST['Submit'])) { $city = $_POST['city']; $from_station = $_POST['from_station']; $from_date = $_POST['from_date']; // Prepare and execute the SQL query $sql = "INSERT INTO journeys (city, from_station, from_date) VALUES ('$city', '$from_station', '$from_date')"; $result = $conn->query($sql); if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } ?> <!DOCTYPE html> <html lang="pt_PT"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>IR PLANNER</title> <link rel="stylesheet" href="Styles\general_styles.css"> <link rel="stylesheet" href="Styles\citymanager_styles.css"> </head> <body> <form class="modal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <label for="city">City:</label> <input type="text" name="city" id="city"> <label for="from_station">From Station:</label> <input type="text" name="from_station" id="from_station"> <label for="from_date">From Date:</label> <input type="date" name="from_date" id="from_date"> <input type="submit" value="Submit" id="Submit"> </form> </body> </html> 按下提交按钮时,不会显示错误。然而,当检查数据库表时,什么也没有出现。 我已阅读文章,并且 sql 连接(config.php)工作正常(在其他页面和文件中工作)并且 sql 查询也很好。 有人遇到这个问题吗? 您需要在提交按钮中传递 name 属性,直到您无法从中获取任何值。在您的条件下,它总是返回 false。所以不会更新任何内容,也不会生成错误。只需更新这里是更新的代码。 <?php session_start(); include('config.php'); if(isset($_POST['Submit'])) { $city = $_POST['city']; $from_station = $_POST['from_station']; $from_date = $_POST['from_date']; // Prepare and execute the SQL query $sql = "INSERT INTO journeys (city, from_station, from_date) VALUES ('$city', '$from_station', '$from_date')"; $result = $conn->query($sql); if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } ?> <!DOCTYPE html> <html lang="pt_PT"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>IR PLANNER</title> <link rel="stylesheet" href="Styles\general_styles.css"> <link rel="stylesheet" href="Styles\citymanager_styles.css"> </head> <body> <form class="modal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <label for="city">City:</label> <input type="text" name="city" id="city"> <label for="from_station">From Station:</label> <input type="text" name="from_station" id="from_station"> <label for="from_date">From Date:</label> <input type="date" name="from_date" id="from_date"> <input type="submit" name="Submit" value="Submit" id="Submit"> </form> </body> </html> 以下是您必须采取的基本调试步骤: 执行过程中出现错误。请参阅此答案中的详细说明。 由于程序逻辑不正确,SQL根本没有运行。添加临时调试输出以确保代码到达查询执行的位置(这是提交输入时出现的特定问题,但这不是重点)。 SQL执行成功,但在错误的数据库中查看结果。仔细检查一下 输入的数据与数据库不匹配。以下是一些关于如何检查的建议。

回答 2 投票 0

Laravel 雄辩和简单的数据库查询

Laravel 9.pнp 8.0。 任务是逐行写入一个数组。你能告诉我为什么用这种形式的 eloquent 写法不起作用,而用 DB select 写法却可以正常工作。我的问题是什么?我...

回答 1 投票 0

唯一索引或主键违规,在 Spring Boot JPA 项目中

org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException:唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.CR_BOOK_DTL(BOOK_ID) (/* key:0 */ 0, NULL, NULL, NULL)”; SQL 状态...

回答 1 投票 0

如何在查询中连接 2 列(where)[重复]

我正在使用 _GET 字符串从 1 个表中的 2 列生成产品详细信息 示例 URL ...details.php?string=column1column2 问题就出在这里: $string = $_GET['$string'] ..."SELECT * FROM ...

回答 1 投票 0

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