2016-05-12 76 views
2

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

奇怪的是,我可以用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); 

?> 

当我通过本地主机访问的页面我得到这个:

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结果。
+0

我没有看到你定义'$ db'的地方。 –

回答

0

你在PHP中启用了mysqli扩展吗?检查Apache的错误日志。例如,看this question。 mysqli的默认情况下禁用,则需要取消注释行

extension=php_mysqli 

php.ini文件。

0

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