php - 当一切看起来正常时没有选择任何行?

标签 php mysql

我在使用 PHP 和 MySQL 时遇到了一个非常奇怪的问题。我在 PHP 脚本中执行以下操作:

$query1 = "SELECT * FROM ".$src;
$ans1 = mysql_query($query1,$vitoquenId);
echo "<p>Query: \"".$query1."\"<br/>Error: \"".mysql_error()."\"<br/>Total rows extracted: ".mysql_num_rows($ans1)."</p>";

执行此操作时,输出如下:

Query: "SELECT * FROM Almacen"
Error: ""
Total rows extracted: 0

问题是,我不应该得到 0 行,奇怪的是没有报告错误。我为我的用户授予了所有权限,甚至尝试以 root 用户身份连接到数据库,但得到了相同的行为。

直接在 MySQL 命令行中执行查询时,我得到以下信息:

mysql> SELECT * FROM Almacen;
+----+-------------+------------+--------+
| id | nombre      | tipo       | status |
+----+-------------+------------+--------+
|  1 | Tienda      | Principal  | Activo |
|  2 | Dep�sito    | Secundario | Activo |
|  3 | Chaguaramos | Secundario | Activo |
+----+-------------+------------+--------+
3 rows in set (0.00 sec)

我尝试过使用 XAMPP 服务器以及我自己配置​​的服务器,并得到了相同的行为。 我检查了我想到的每条日志,配置 MySQL 来记录每条查询,似乎没有发生任何异常。

MySQL 日志显示以下内容:

110802 16:21:49       101 Connect   victor@localhost on 
                      101 Init DB   saw
                      101 Init DB   sawprueba
                      101 Query SELECT * FROM Almacen
                      101 Quit

Apache 日志不显示任何内容,也不显示站点特定日志。

我正在编写的程序是一个迁移工具。它从一个数据库中提取信息,对其进行处理,然后将其插入到另一个数据库中。为此,我需要连接到两个数据库。我按照 PHP documentation 中的建议使用单例模式通过两个类建立连接。 。可以在 github repo 中看到连接文件.

为了建立与数据库的连接,我这样调用此类:

$vitoquen = Vitoquen::singleton();
$newVitoquen = NewVitoquen::singleton();
$vitoquenId = $vitoquen->getId();
$newVitoquenId = $newVitoquen->getId();

发生的情况是,由于某种原因,它没有创建两个单独的连接,而是仅创建一个连接,并使用第二个数据库,即新的空数据库。当我看到MySQL日志时我得到了线索:

110802 16:21:49       101 Connect   victor@localhost on 
                      101 Init DB   saw
                      101 Init DB   sawprueba
                      101 Query SELECT * FROM Almacen
                      101 Quit

显示101 Init DB两次;一个用于 saw,另一个用于 sawprueba。现在我不明白为什么它不创建两个单独的连接...

最佳答案

连接到 DBMS 时您是否选择了正确的数据库(也称为方案)?

示例:

mysql_select_db("mydatabase", $link);

关于php - 当一切看起来正常时没有选择任何行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918822/

相关文章:

php - 使用 PHP DateTime 获取特定日期的 "Right"年份

php - PDO插入数组

php - 禁用 PDO::ATTR_EMULATE_PREPARES 导致 'unknown' 问题

php - WHERE之后可以在Mysql查询中使用变量吗

php - 如何使用 MySQL PDO 检测数据库名称

php - 删除 PHP 中的调试消息

PHP/MYSQL - 在 CMS 中存储页面布局和内容数据的最佳方式

compression - mysqldump 压缩 - gzip 或 bzip2

mysql - 安装 RMysql RHEL 7.3 出错

php - 获取按模糊范围排序的每日数值统计数据