Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php和mysql存在奇怪的问题。一切正常时是否未选择行?_Php_Mysql_Mysql Num Rows - Fatal编程技术网

php和mysql存在奇怪的问题。一切正常时是否未选择行?

php和mysql存在奇怪的问题。一切正常时是否未选择行?,php,mysql,mysql-num-rows,Php,Mysql,Mysql Num Rows,我对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)."<

我对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>";
问题是,我不应该得到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)
110802 16:21:49       101 Connect   victor@localhost on 
                      101 Init DB   saw
                      101 Init DB   sawprueba
                      101 Query SELECT * FROM Almacen
                      101 Quit
我试过使用xampp服务器,也试过使用我自己配置的服务器,结果得到了同样的结果。 我检查了我想到的每一个日志,配置了mysql来记录每一个查询,似乎没有任何异常发生

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)
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日志没有显示任何内容,特定于站点的日志也没有显示任何内容。求求你,任何试图破译这个的线索都将是非常宝贵的!!!谢谢!!!=)

编辑:

我发现了问题。这与他的回答有关

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

为了连接数据库,我这样调用这个类:

$vitoquen = Vitoquen::singleton();
$newVitoquen = NewVitoquen::singleton();
$vitoquenId = $vitoquen->getId();
$newVitoquenId = $newVitoquen->getId();
由于某种原因,它不会创建两个单独的连接,而是只创建一个连接,并使用第二个db,即新的db,它是空的。当我看到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初始DB;一个用于
saw
,另一个用于
sawprueba
。现在我不明白为什么它不能创建两个独立的连接。。。有什么建议吗

非常感谢您的帮助!!!=)

编辑:

我还不能自我回答,但这是我问题的解决办法。无论如何,感谢那些花时间阅读(和回答)这篇文章的人

如的文档所示,它接收一个名为
new_link
的可选参数,默认情况下该参数为
false

新建链接
如果使用相同的 参数,则不会建立新链接,而是 将返回已打开链接的标识符。新链接 参数修改此行为并使mysql_connect()始终打开 一个新的链接,即使之前使用相同的 参数。在SQL安全模式下,忽略此参数


因此,我只需要在两个连接类中添加一个true作为调用mysql_connect()的最后一个额外参数已解决=)

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

例如:

mysql_select_db("mydatabase", $link);
让我们添加一些最小的错误处理和一个额外的查询,以查看mysql对所讨论的表的“想法”

$query1 = "SHOW TABLE STATUS LIKE '$src'";
echo '<pre>Debug: query1=', $query1, "</pre>\n";
$ans1 = mysql_query($query1, $vitoquenId)
    or die(mysql_error());
while ( false!==($row=mysql_fetch_assoc($ans1)) ) {
    foreach( $row as $key=>$value ) {
        echo $key,'="', $value, '" ';
    }
    echo "<br />\n";
}

$query1 = "SELECT * FROM ".$src;
echo '<pre>Debug: query1=', $query1, "</pre>\n";
$ans1 = mysql_query($query1,$vitoquenId)
    or die(mysql_error());
echo "<p>Query: \"".$query1."\"<br/>Error: \"".mysql_error()."\"<br/>Total rows extracted: ".mysql_num_rows($ans1)."</p>";
$query1=“显示表格状态,如“$src”;
回显'Debug:query1=',$query1,“\n”;
$ans1=mysql\U查询($query1,$vitoquenId)
或者死(mysql_error());
while(false!=($row=mysql\u fetch\u assoc($ans1))){
foreach($key=>$value的行){
回显$key,“=”,$value,“”;
}
回显“
\n”; } $query1=“从“$src”中选择*; 回显'Debug:query1=',$query1,“\n”; $ans1=mysql\U查询($query1,$vitoquenId) 或者死(mysql_error()); echo“Query:\.”$query1.\”
错误:\”“.mysql\u Error().“\”
提取的总行数:“.mysql\u num\u rows($ans1)。”

”;
对于与本地数据库的连接:


什么是
$vitoquenId
?它是有效的MySQL资源吗?