MAMP - 所有MySQL查询返回空

时间:2016-05-12 04:40:57

标签: php mysql mamp

我最近安装了MAMP。但是我无法从php成功执行MySQL查询。我可以从php连接到MySQL,但我的所有查询都返回NULL。我没有收到任何有助于我诊断问题的错误消息或其他消息。

奇怪的是,我可以使用phpMyAdmin和MySQLWorkbench成功查询MySQL。

这是我的代码:

<?php
$link     = mysqli_init();
$con      = mysqli_real_connect($link, 'localhost', 'root', 'root', 'mrmk', 8889);
$db       = 'mrmk';

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

$sql    = "SHOW TABLES FROM `$db`";
$result = mysqli_query($con, $sql);
echo "</br>" . "1. MySQL Error: " . mysqli_error();
echo "</br>" . "result: ";
var_dump($result);

$sql    = "SHOW TABLES FROM $db";
$result = mysqli_query($con, $sql);
echo "</br></br>2. MySQL Error: " . mysqli_error();
echo "</br>" . "result: ";
var_dump($result);

$sql    = "SELECT * FROM `transactionTable` WHERE `attorneyName` LIKE \'%howard%\'";
$result = mysqli_query($con, $sql);
echo "</br></br>3. MySQL Error: " . mysqli_error();
echo "</br>" . "result: ";
var_dump($result);

if (!$result) {
    echo "</br></br>" . "4. MySQL Error: " . mysqli_error();
    exit;
} else {
    echo "we should have results.";
}

while ($row = mysqli_fetch_row($result)) {
    echo "Table: {$row[0]}\n";
}

mysqli_free_result($result);

?>

当我通过localhost访问该页面时,我得到了这个:

Host information: Localhost via UNIX socket 
1. MySQL Error: 
result: NULL 

2. MySQL Error: 
result: NULL 

3. MySQL Error: 
result: NULL 

4. MySQL Error:

当我从phpMyAdmin执行相同的查询时,它们会成功执行并返回非NULL结果。

我有两个问题:

  1. 我可以添加哪些代码来帮助诊断此问题?
  2. 我的代码中是否有错误导致我获得NULL结果。

2 个答案:

答案 0 :(得分:0)

要回答问题#1,您可能会发现echo $ sql变量很有用,以确保您的查询有效以及您希望它们是什么。

答案 1 :(得分:0)

您是否在PHP中启用了mysqli扩展?检查apache错误日志。以this question为例。默认情况下禁用mysqli,您需要取消注释行

extension=php_mysqli

php.ini档案中。