通过 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)");
这不会造成任何问题。
上面的选择可能有什么问题?
最佳答案
<?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
关于php - var_dump 返回 bool(false) 和 @mysql_ping() 返回 true,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038603/