无法连接到PHP中的MySQLi?
- 固定 -无法连接到PHP中的MySQLi?
我修正了我遇到的问题。我不是100%确定它是如何修复的,但我认为这是因为我将连接端口更改为3306,然后使用本地主机而不是我的IP连接。谢谢大家花时间帮忙,你们都非常乐于助人。
我有一个真的令人沮丧的问题,我一直在尝试解决(字面意思)过去4个小时。我无法通过我的php代码连接到MySQLi。我检查了用户名,密码,数据库和主机是否正确。这里是我的代码:
$mysqli = new mysqli("104.236.***.57", "Josh", "********", "******");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
所有这一切是回声连接。查询不返回任何东西(它就像一个空字符串)。当我尝试echo $连接时,它也是如此。我认为这是连接问题,因为它是空的,但你们最清楚(我是MySQL的新手)。我已经研究并尝试了4个多小时,并没有任何工作。
太感谢你了,
乔希
编辑:我已经更新的代码。现在它返回错误:连接被拒绝(mysql错误)。
我想我已经解决了连接问题,但是我遇到了一个我认为可能与另一个问题有关的新问题。我有这样的代码在这里:
$servername = "104.***.***.57";
$username = "Josh";
$password = "*******";
$dbname = "*****";
$conn = new mysqli($servername, $username, $password, $dbname, '/var/run/mysqld/mysqld.sock');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"];
}
} else {
echo "0 results";
}
$conn->close();
而且似乎工作,除了它打印“0结果”时,有1
enter code here
<?php
$servername = "localhost"; //replace your servername
$username = "root"; //replace your username
$password = ""; //replace your password
$dbname = "test"; //replace your database name
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
echo ' not connected';
}
else
echo 'connected';
?>
执行此操作并告诉我输出。
//只需填写自己的设置...
$server = "localhost";
$user = "root";
$password = "*****";
$database = "uyelik";
$db= mysqli_connect($server ,$user, $password);
if(!$db) { echo 'Mysqli conn. error: ' . mysqli_connect_errno(); exit;}
mysqli_select_db($db,$database);
$query = mysqli_query($db,"SELECT * FROM lists") or die (mysql_error());
'Mysqli conn。错误:2002'(抱歉有点迟了回复) – Josh
对于成功的SELECT,SHOW,描述或解释查询的mysqli ::查询(或mysqli_query())将返回一个mysqli_result对象(见本文mysqli.query)。 所以你的情况,你不能只是呼应这一点,你可以看到这样的行数据:
$mysqli = new mysqli("104.236.***.57", "Josh", "********", "******");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM users", MYSQLI_USE_RESULT)) {
/* prints number of result rows */
printf("Select returned %d rows.\n", $result->num_rows);
/* Cycle through results */
echo "Table data:\n";
while ($row = $result->fetch_object()){
var_dump($row);
}
/* free result set */
$result->close();
}
/* close connection */
$mysqli->close();
另外,检查你的数据库服务器进行远程访问提供(104.236 *** 57。)。如果您可以从外部访问数据库服务器,请咨询您的托管公司。
$sql = "SELECT * FROM users";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result))
{
echo "id: " . $row["id"];
}
try this instead of your code
good luck!!!!
'$ query'是一个结果对象(或者也可能检查执行中的错误),您需要获取。 – chris85
对不起,但你是什么意思? @ chris85 – Josh
请参阅http://php.net/manual/en/mysqli-stmt.fetch.php和http://php.net/manual/en/mysqli.query.php关于后者的具体说明'在失败时返回FALSE 。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE.',所以你要么有'false','true'或'result object'。 – chris85