2014-06-24 60 views
-4

我已经做的代码,而错误的连接和数据获取,但我不知道为什么查询结果布尔(假)从查询PHP中没有结果

<?php 
$con=mysql_connect("localhost","root","","xyz"); 
echo "Connection made"; 

// Check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
?> 

的代码来查询和执行是

<?php 
include ("includes/connection.php"); 
$query="SELECT * FROM userdata "; 
$result=mysql_query($query); 
var_dump($result); 
?> 

需要帮助这里

+4

仔细看看这一行'$ con = mysql_connect(“localhost”,“root”,“”,“xyz”);'然后查看其余代码,发现有什么不同?你在哪里也犯了同样的错误; **混合API ** **不**混合**。看看这个也是'$ result = mysql_query($ query);'--- [**阅读(F)手册**](http://www.php.net//manual/en/book.mysqli .php) –

+0

是否有来自数据库的错误?检查'mysql_error()'获取更多信息。另外,“我已经做出了没有错误的代码”是一个非常大胆的假设,因为你的代码导致了一个错误。当你认为你的代码必须是完美的,并且编译器/解释器必须被破坏时,你几乎总是错误的。 – David

+2

你的'echo“连接使得”;'几乎是无用的,因为即使它不连接它也会回显出来。你也在混合使用'mysql'和'mysqli'函数..不起作用。选择一个或后者:如果您不想使用depracted功能,请选择'mysqli' – Dorvalla

回答

0
  1. 不要使用mysql_ *功能,它们depracted使用的mysqli或PDO来代替。
  2. 您需要使用获取函数(如mysql_fetch_array()或mysql_fetch_row())来获取查询结果,以获取查询结果。 PHP手册中有很多例子。

在你的事业会是这样的:

<?php 
    $con=mysql_connect("localhost","root","") or die("didn't connect to db"); 
    mysql_select_db('name_of_your_db', $con); 
    $query="SELECT * FROM `userdata` "; 
    $result=mysql_query($query); //this returns resource ID that needs to be fetched 

    while($row = mysql_fetch_row($result)) 
    print_r($row); 

如果$结果是假就意味着查询失败可以通过例如几个问题引起的,没有DB选择,有无连接等

我也愿意给你更好的解决方案与PDO

<?php 

$dsn  = 'mysql:dbname=nameofyourdb;host=127.0.0.1'; 
$user  = 'root'; 
$password = 'yourpass'; 

try 
{ 
    $db = new PDO($dsn, $user, $password); 
    foreach ($db->query("SELECT * FROM `userdata`") as $row) 
      print_r($row); 
} 
catch (PDOException $e) 
{ 
    echo 'Connection failed: ' . $e->getMessage(); 
} 

?> 
+3

再次仔细查看问题/代码。另外,['读我的评论'](https://stackoverflow.com/questions/24386093/no-result-from-query-in-php#comment37715852_24386093)这将给你一个线索,所以你可以重写你的答案。 –

+0

你是说他混合了mysql和mysqli函数? – Robert

+0

就是这样。 OP应该使用所有的'mysqli_',所以你的答案应该如此。 –

1

您应该使用MySQL或mysqli的。这是错误的主要问题

<?php 
$con=mysqli_connect("localhost","root","","xyz") or die ("error in connection".mysqli_error($con); 
?> 

,并使用$result= mysqli_query($con, $sql)其中$ SQL包含查询

0

正如我在评论中说,您的回音在那里,告诉你,你连接到MySQL服务器不有效。我从我那里拿出了一个旧功能,告诉你如何去做,并明确错误在哪里。

$con = mysql_connect('localhost','root','');  
$db = mysql_select_db('xyz',$con); 

function OpenConnection(){ 
    global $con; 
    global $db; 
    if (!$con){ 
     die('cannot connect to server!'); 
    }else{ 
     if(!$db){ 
      die('cannot connect to database!'); 
     } 
    } 
} 

如果你没有得到任何回报,你会很好去。

+2

全局损害我:) – Robert

+0

难道它不总是。就像我说的,老功能。我不再使用这些东西,但仍然。这是一个例子。 – Dorvalla