我正在将一个网站从Windows服务器迁移到雪豹服务器(确切地说是OSX 10.6.8),我遇到了与我的mysql查询的几个兼容性问题。每个查询都返回“没有选择数据库”错误,我无法理解它。我已经做过一些研究,但却无法找到我想要的答案。以下是一些可能有助于解决我的问题的指标。
这是我的连接文件包括:
$link = mysql_connect("localhost", "username", "password") or die("Invalid query: " . mysql_error());
mysql_select_db("tradeport", $link) or die("Database Connection Error: ".mysql_error());
以下是我的一个问题:
$sSQL="SELECT mainPhone FROM admins";
$result21=mysql_query($sSQL) or die ("MySQL err: ".mysql_error()."<br>".$sSQL);
if($row21 = mysql_fetch_array($result21))
{$phoneMain = $row21['mainPhone'];}
我想补充的另一个注意事项是,当我开始在此网站上迁移时,所有的PHP都显示在页面源中。我不得不用更正式的替换所有的PHP括号,如下所示:
<? //before
<?php //after
我目前正在运行PHP版本5.3.8和MySQL版本5.0.92。
任何信息都会被大大贬低。
答案 0 :(得分:0)
尝试将db名称添加到查询
"SELECT mainPhone FROM tradeport.admins"
答案 1 :(得分:0)
在mysql_*
或mysqli_*
(您应该使用的)函数调用中引用数据库连接始终是个好习惯。
尝试:
$result21=mysql_query($sSQL, $link) or die ("MySQL err: ".mysql_error()."<br>".$sSQL);
答案 2 :(得分:0)
你说你看到错误信息,“没有选择数据库”,这让我想知道你是否真的在执行mysql_select_db代码行,因为它的错误信息是“数据库连接错误:”,然后是mysql错误代码
此外,包含文件获取用户名和密码的值在哪里?你刚才引用了文字字符串,起初我认为这是出于安全目的。
我认为您提供的代码片段并未向我们展示整体情况。
答案 3 :(得分:0)
我试过了,它给了我这个错误的回复:SELECT命令 否认用户'''localhost'表 - Trig3rz 20分钟前
检查是否使用正确的权限设置了数据库用户 GRANT SELECT ON db。* TO user @'localhost'IDENTIFIED BY'pass';
您可能需要检查原始服务器上的php.ini文件,以查看它们之间存在的差异。
<?
是php短标签,它在php ini文件中使用以下行启用:
short_open_tag=On