var_dump返回bool(false)和@mysql_ping()返回true,为什么?

时间:2013-11-18 01:30:45

标签: php mysql sql database linux

通过php连接mysql的问题。我有简单的数据库如下:

CREATE TABLE test (
         id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
         val INT
);

当我在与mysql连接的终端中选择时:

 select * from test;

它输出正常选择的结果。

我从php执行的相同选择例如:

<?php
$con = mysqli_connect("localhost", "root", "", "hfh") or die("Unable to Connect");
// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysql_query("SELECT * FROM test");
echo "results number: " . mysql_num_rows($result);
echo "<br/>";
echo mysql_num_rows($result);
echo "<br/>";
echo "results number: ";
echo "<br/>";
echo var_dump($result);
echo "<br/>";
echo @mysql_ping() ? 'true' : 'false';
mysqli_close($con);
?>

它给了我输出:

results number:

results number:
bool(false)
true

当我插入像:

mysqli_query($con,"INSERT INTO test (val) VALUES (55)");

不会造成任何问题。

选择上面可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

    <?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
$result->free();

/* close connection */
$mysqli->close();
?>

参考网址:http://us3.php.net/manual/zh/mysqli-result.fetch-array.php