mysqli连接和查询

ris*_*nk1 5 php mysqli

我是mysqli的新手,正在阅读以下教程:http://www.binpress.com/tutorial/using-php-with-mysql-the-right-way/17#comment1

我能够使用以下方法连接到我的数据库:

$config = parse_ini_file('../config.ini'); 
$connection = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);
if($connection === false) {
die('Connection failed [' . $db->connect_error . ']');
}
echo("hello"); //this worked!
Run Code Online (Sandbox Code Playgroud)

但后来我尝试将它包装在一个函数中(如教程中所讨论的)...我看到你从另一个函数调用连接函数...在教程中,每个函数都会从另一个函数和另一个函数调用...而我从来没有找到初始调用开始从哪里获得函数调用彼此的多米诺骨牌效应..所以无论如何,我试图阻止它只是为了测试和教自己..但它不起作用,我不知道为什么:

function db_connect() {
static $connection;

if(!isset($connection)) {
$config = parse_ini_file('../config.ini'); 
$connection = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);
    }
if($connection === false) {
return mysqli_connect_error(); 
}
return $connection;
echo("hello2");
}

function db_query($query) {
$connection = db_connect();
$result = mysqli_query($connection,$query);
return $result;
echo("hello1");

}

db_query("SELECT `Q1_Q`,`Q1_AnsA` FROM `Game1_RollarCoaster`"); //this didn't work :(
Run Code Online (Sandbox Code Playgroud)

ris*_*nk1 4

好吧,我最终将其从函数中取出,并使代码变得超级简单(坚持使用过程而不是 OOP,尽管很多教程都使用 OOP - 认为最好以这种方式开始):

<?php 
$config = parse_ini_file('../config.ini'); 
$link = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);

if(mysqli_connect_errno()){  
echo mysqli_connect_error();  
}  


$query = "SELECT * FROM Game1_RollarCoaster";

$result = mysqli_query($link, $query);

while ($row = mysqli_fetch_array($result)) {

echo $row[Q1_Q] . '<-- Here is your question! ' . $row[Q1_AnsA] . '<-- Here is your answer! ';

echo '<br />';

}

mysqli_free_result($result);
mysqli_close($link);


?> 
Run Code Online (Sandbox Code Playgroud)