在尝试将我的PHP应用程序转换为SaaS时,获取“警告:mysql_fetch_row()期望参数1是资源,布尔值在中给出”

在尝试将我的PHP应用程序转换为SaaS时,获取“警告:mysql_fetch_row()期望参数1是资源,布尔值在中给出”,php,mysql,saas,multi-tenant,Php,Mysql,Saas,Multi Tenant,我正在尝试将我的PHP应用程序转换为支持多租户SaaS。我看到了这篇文章,并修改了现有的config.php文件,如下所示 <?php $data = explode('.',$_SERVER['SERVER_NAME']); if (!empty($data[0])) { $subdomain = $data[0]; } define('SITE_DB_SERVER','localhost'); define('SITE_DB_PORT','3306'); define('

我正在尝试将我的PHP应用程序转换为支持多租户SaaS。我看到了这篇文章,并修改了现有的config.php文件,如下所示

<?php

$data = explode('.',$_SERVER['SERVER_NAME']);

if (!empty($data[0])) {
    $subdomain = $data[0];
}

define('SITE_DB_SERVER','localhost');
define('SITE_DB_PORT','3306');
define('SITE_DB_USERNAME','root');
define('SITE_DB_PASSWORD','mysql');
define('SITE_DB_NAME','central');

$sitedbh = mysql_connect(SITE_DB_SERVER.':'.SITE_DB_PORT,SITE_DB_USERNAME,SITE_DB_PASSWORD);

$sitemysql = mysql_query('select id,dbusername,dbpassword from central.client where subdomain = '.$subdomain.'');

$appdata = mysql_fetch_row($sitemysql);

if (empty($appdata['id'])) {
    echo "Oops! Sorry, we are unable to find you! Please email us at support@mydummyapp.com";
    exit();
}

define('DB_HOSTNAME', '127.0.0.1');

define('DB_PORT', '3306');

define('DB_USERNAME', 'root');

define('DB_PASSWORD', 'mysql');

define('DB_DATABASE', 'myapp_'.$appdata['id']);

define('LAST_ACTIVITY_TIMEOUT', '3600');

define('SESSION_RENEG_TIMEOUT', '600');

define('USE_DATABASE_FOR_SESSIONS', 'true');

define('CSP_ENABLED', 'false');

date_default_timezone_set('America/Chicago');

?>
当尝试运行我的应用程序时,我面临警告:mysql_fetch_row期望参数1是resource,布尔值在第19行的/myapp_path/config.php中给出。请参考截图。在过去的10个小时里,我尝试了一些可用的解决方案,但没有任何效果。请帮我把它安装好并运行起来


正如约翰·康德所说。。。查询错误,请更改以下内容:

$sitemysql = mysql_query('select id,dbusername,dbpassword from central.client where subdomain = '.$subdomain.'');
为此:

$sitemysql = mysql_query("select id,dbusername,dbpassword from central.client where subdomain = '".$subdomain."')";

请注意查询中字符串值周围的新引号

您的查询失败。请看您的引用。@johncode您能帮我重新表述正确的查询吗?请看本页的侧栏。在使用mysql_查询时,您也应该非常小心,尽量避免使用它。如果可能的话,mysql_查询已被弃用,将来将从PHP中删除。一个现代的替代品。如果你是PHP新手,像这样的指南可以帮助你解释最佳实践。@tadman+1推荐我PDO。就像魅力一样,我的工作和PDO很好。是的,我是PHP新手,谢谢你给我推荐那些好文章。你成就了我的一天..正如你所说,我已将查询更改为$sitemysql=mysql_queryselect id,dbusername,dbpassword from central.client,其中subdomain='.$subdomain';我现在没有看到任何警告,但仍然得到错误,这是在我的上述代码如果条件。尝试回显$sitemysql和$appdata['id']$sitemysql正在打印资源id 6,$appdata['id']显示空字符串。请替换$appdata=mysql\u fetch\u row$sitemysql;$appdata=mysql\u fetch\u assoc$sitemsql;您的结果只是编号的数组,如$appdata[0]是您的id文件$appdata[1]是您的用户名等。为什么右括号是字符串的一部分?看起来还是错的。哎呀。。。这是一个打字错误