Mysqli PHP连接致命错误

Mysqli PHP连接致命错误

问题描述:

我想创建一个从Web表单到使用PHP的MySQL数据库的连接。我的代码如下:Mysqli PHP连接致命错误

connection.php:

<?php 
$link = mysqli_connect("", "", "", ""); 

if (!$link) { 
echo "Error: Unable to connect to MySQL." . PHP_EOL; 
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
exit; 
} 

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; 
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; 

phpinfo(); 

这部分似乎工作..然后它连接到感谢you.php:

<?php 

function connect() 
    { 
     $conn = mysqli_connect("", "", "", ""); 
    } 

ini_set('display_errors', 1); error_reporting(~0); 

require 'connection.php'; 
$conn = Connect(); 
$query = mysqli_query($conn,"INSERT into Members (Username) VALUES('1111Username')"); 
$success = $conn->query($query); 

if (!$success) { 
die("Couldn't enter data: ".$conn->error); 

} 

echo "Thank You For Contacting Us <br>"; 

mysqli_close($conn); 

?> 

我收到以下错误:

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/sites/i/site/public_html/ContactForm/thankyou.php on line 15

Fatal error: Call to a member function query() on null in /var/sites/i/site/public_html/ContactForm/thankyou.php on line 16

+0

@弗雷德-II-为t他的一句话,我应该加上谢谢you.php? – EmmaJ

+1

我不知道你为什么使用2个不同的文件,其中包含2个不同的连接调用。更简单的方法是使用1个连接调用,如果你想使用这个自定义函数'connect()',你需要传递连接变量给它,否则你会遇到变量作用域的问题,我相信现在发生了什么事。 –

+0

您似乎也从之前的其他问题转载了相同的内容http://stackoverflow.com/q/43233031/1415724 - 您应该编辑它。 –

有几个问题与你的脚本:

1:你需要返回的连接喜欢○:

function connect() 
{ 
    return mysqli_connect("", "", "", ""); 
} 

2:当您运行

$query = mysqli_query($conn,"INSERT into Members (Username) VALUES('1821Username')"); 

您已经执行的SQL的数据库,你不需要$success = $conn->query($query);

所以,你的代码应该是:

<?php 

function connect() 
    { 
     return mysqli_connect("", "", "", ""); 
    } 

ini_set('display_errors', 1); error_reporting(~0); 

require 'connection.php'; 
$conn = connect(); 
$query = mysqli_query($conn,"INSERT into Members (Username) VALUES('1821Username')"); 

if (!$query) { 
die("Couldn't enter data: ".$conn->error); 

} 

echo "Thank You For Contacting Us <br>"; 

mysqli_close($conn); 

?> 
+0

令人惊叹!非常感谢!这就是它:) – EmmaJ

+0

@EmmaJ考虑批准答案,如果它帮助你解决了你的问题,以便它可以帮助其他人可能面临同样的问题。 –

+1

我会做的!它告诉我等8分钟,所以我会尽快做到!再一次,谢谢你! – EmmaJ