我正在将所有使用PHP MySQL的查询更改为MySQLi。
我使用连接设置创建了一个名为db.php的文件。
该文件包含
<?php
$db = new mysqli('localhost','mysqlusername','mysqlpassword');
echo "<h1>Success database connection</h1>";
if($db->connect_errno > 0)
{
die('No connection [' . $db->connect_error . ']');
}
?>
我将文件包含在:
require_once "/location/db.php";
之后我使用:
if($db->connect_error)
{
echo "Not connected, error: ".$db->connect_error;
}
else
{
echo "Connected.";
}
它回应连接,所以我认为我的连接很好。
我有3个PHP变量,我想在我的数据库表中插入代码
我首先回应变量,所以我确信它们有内容。
我验证后我的连接没问题(返回已连接)并回显我想要查询的变量内容:
$sql = "INSERT INTO 'Code' (`Name`, `Code`, `Admin`)
VALUES ('$name', '$code', '$admin')";
echo $sql;//show query
// Performs the $sql query on the server to insert the values
if ($db->query($sql) === TRUE)
{
echo 'User Created.';
}
else
{
echo 'Errorcreating : '. $db->error;
}
我收到消息Errorcreating:No database selected
我有echo $ sql向我展示查询。
如果我直接在SQL中复制查询,它的工作方式应该如此。
这是我第一次使用MySQLi,所以我可能犯了一个非常愚蠢的错误,但我找不到它。
答案 0 :(得分:3)
使用此
$db = new mysqli('localhost','mysqlusername','mysqlpassword','database');
你的转义字符也是错误的,不要在tablename周围使用单引号使用反引号运算符
$sql = "INSERT INTO `Code` (`Name`, `Code`, `Admin`)VALUES ('$name', '$code', '$admin')";
答案 1 :(得分:2)
事实上,您没有选择任何数据库。您已连接到数据库服务器,其中可能有数百个数据库。你需要指定你发送查询的那个!
您的查询很好,当您直接输入它时它会起作用,因为当您这样做时,您已经指定了要使用的数据库。
答案 2 :(得分:1)
您尚未在代码中选择数据库。根据php.net中的this page,mysqli_connect或mysqli构造函数中有一个参数,您可以输入数据库名称。
这是一个简单的例子:
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
答案 3 :(得分:0)
试试这个
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>