我第一次使用oop连接到数据库并且直接提出问题,下面是我正在努力解决的代码:
$q = 'SELECT * FROM test';
$sqli->query($q);
if($sqli->query($q)){
echo "worked";
}
if($sqli->error){
echo $sqli->error;
}
我在连接到数据库时检查了错误并且工作正常,但是当我运行此查询时,我没有输出,为什么?我预计会出现错误或“有效”,但两者都没有。
发生了什么事?
答案 0 :(得分:0)
我在源代码中添加了一些注释以帮助:
$q = 'SELECT * FROM test';
//$sqli is the result of a
//new mysqli("localhost", "user", "password", "database");
$resource = $sqli->query($q); // this returns a resource or false
if(!$resource) {
echo $sqli->error;
die; // do not process further
}
// process the results
$rows = $resource->fetch_all();
if ($rows) { // check if there are rows
echo "worked";
}
else {
echo "query is ok, but there are no rows";
}
答案 1 :(得分:0)
您还可以使用$ resource-> fetch_object()返回输出对象。因此,如果您想从结果集中打印特定数据,您可以执行类似
的操作//table test.Name and test.Country
while ($rowobj = $resource->fetch_object()){
printf ("%s (%s)\n", $rowobj->Name, $rowobj->Country);
}
祝你好运,
答案 2 :(得分:0)
您可以使用此方法,我希望它是您正在寻找的。您需要先定义数据库。然后你可以在OOP中连接并测试连接是否为真或退出();
如果这对您有用,请告诉我。您还可以在外部文件中定义数据库,只需执行include();对于需要连接到数据库的任何页面,请在脚本顶部。
define("SERVER","IP Address");
define("USER","DB USERNAME");
define("PASSWORD","DB PASSWORD");
define("DATABASE","DB NAME");
// This is for connection
$mysqli = new mysqli(SERVER, USER, PASSWORD, DATABASE);
if ($mysqli->connect_errno) {
echo "Connection to MySQL failed: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
exit();
}