我对mysql有疑问。我是PHP脚本,它将数组从datebase返回到json数据。 我来自“回声”的消息。关于成功连接,但我的结果是等于数组的null。
在资源管理器上的结果我是
Connected successfully
query: SELECT name,id FROM rz_DWzZ'
result:
RESULT:[]
这是这个脚本。
$conn = mysql_connect($servername, $username, $password);
mysql_select_db($database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$return_arr = array();
$qstring = "SELECT name,id FROM rz_DWzZ";
$result = mysql_query($qstring,$conn);
echo "<br>query: ".$qstring."<br>";
echo "<br>result: ".$result."<br>";
while ($row = mysql_fetch_assoc($result))//loop through the retrieved values
{
$row['name']=htmlentities(stripslashes($row['name']));
$row['id']=(int)$row['id'];
array_push($return_arr,$row);
}
mysql_close($conn);
echo "<br>RESULT:".json_encode($return_arr);
答案 0 :(得分:1)
您未正确检查故障。 mysql _ *()函数在失败时返回boolean FALSE,echo
将打印为零长度/不可见字符串。
你必须明确地测试它:
$result = mysql_query(...) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^--method #1
if ($result === false) { // method #2
die(mysql_error());
}
当然,你不应该使用这些功能。它们已经过时/弃用,而且您的代码现在在较新版本的PHP中无用。你应该使用mysqli或PDO进行任何新的开发。
同样,你还有许多其他错误:
if ($conn->connect_error) {
mysql _ *()函数库从来都不是面向对象的。它纯粹是程序性的,绝对没有任何对象支持。因此,此连接测试将始终失败,因为$conn->connect_error
将始终求值为null,这也将转换为布尔值false,这意味着您获得成功的误报。