我正在尝试一些非常简单但似乎不起作用的东西。我想创建一个名为db_conn()的函数,这样我就可以调用它来打开一个mysql数据库,而不是每次需要时都进行一次新的调用。这是功能:
/**************************************
Open Database Connection Function.
***************************************/
/* Database Connection Settings */
$_SESSION['servername'] = "localhost";
$_SESSION['mysql_username'] = "abc123";
$_SESSION['mysql_password'] = "mypass";
$_SESSION['dbname'] = "dbname";
function db_conn() {
$conn = new mysqli($_SESSION['servername'], $_SESSION['mysql_username'], $_SESSION['mysql_password'], $_SESSION['dbname']);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
// Test if connection succeeded
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
}
对函数的示例调用和回显数据:
<?php
db_conn();
$sql = "SELECT id, region FROM tbl_region;";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo '<td width="1"><label for="delete">
<input type="radio" name="region" id="region" value="'.$row["id"].'">
</label></td>';
echo '<td align="left" valign="top"><p>'.$row["region"].'</p></td></tr>';
}
}
?>
当我测试页面时,它停在上面的代码中,并且不显示任何错误。有人可以告诉我db_conn函数我做错了吗?
答案 0 :(得分:2)
db_conn()
仅在您的函数$conn=db_conn();
中可用,超出了范围。
如果启用错误报告并显示错误报告,则会发现错误100%。
虽然有更好的方法可以做到这一点但是如果你想把它作为练习,你可以让你的函数将连接资源返回给调用者。
function db_conn() {
// body
return $conn;
}
你的功能可以退货
{{1}}
答案 1 :(得分:0)
你也可以这样做
$conn = '';
function db_conn() {
global $conn;
$conn = new mysqli... //the rest of your code here
}