Sam*_*adi -2 php mysql mysqli return die
我有功能:
function dbConnect($usertype, $connectionType = 'mysqli') {
// some code hare
return new mysqli($host, $user, $pwd, $db) or die ('Cannot open database');
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个:
$conn = dbConnect('read');
$result = $conn->query('SELECT * FROM images');
Run Code Online (Sandbox Code Playgroud)
函数不返回任何东西,它说:
致命错误:在第10行的C:\ xampp\htdocs\phpsols\mysql\mysqli.php中调用非对象的成员函数query()
但它以这种方式工作(没有die())
return new mysqli($host, $user, $pwd, $db);
Run Code Online (Sandbox Code Playgroud)
该[..] or die()构造与return语句一起导致有趣的行为:整个事物被解释为布尔表达式.
因为new mysqli永远不会是假的,所以"die"永远不会被处理,因此,你的函数返回true而不是新创建的实例mysqli.
如果您仍想使用or die(),请执行以下操作:
$result = new mysqli($host, $user, $pwd, $db) ;
if (!$result) die ("Can't open database.");
return $result;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |