Я меняю все свои запросы, которые используют 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."; }
Это echo's Connected, поэтому я предполагаю, что мое соединение хорошее.
У меня есть 3 переменные PHP, которые я хочу вставить в таблицу базы данных.
Я сначала повторяю переменные, поэтому я уверен, что у них есть контент.
После того, как я подтвердил, что мое соединение в порядке (возвращается Connected) и повторяет содержимое переменных, я хочу выполнить запрос с помощью:
$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: не выбрана база данных
У меня есть echo $ sql, чтобы показать мне запрос.
Если я копирую запрос непосредственно в SQL, он работает так, как должен.
Это мой первый раз на MySQLi, так что, возможно, я совершил очень тупые ошибки, но я не могу его найти.
Использовать это
$db = new mysqli('localhost','mysqlusername','mysqlpassword','database');
Кроме того, ваш escape-символ ошибочен, не используйте одинарные кавычки вокруг имени оператора табуляции use backtick
$sql = "INSERT INTO `Code` (`Name`, `Code`, `Admin`)VALUES ('$name', '$code', '$admin')";
Фактически, вы не выбрали какую-либо базу данных. Вы подключились к серверу БД, где могут быть сотни баз данных. вам нужно указать, к какому сообщению вы отправляете запросы!
Ваш запрос прекрасен, и он работает, когда вы вводите его напрямую, потому что когда вы это делаете, вы уже указали используемую базу данных.
Вы не выбрали свою базу данных в коде. Согласно этой странице в php.net, в конструкторе mysqli_connect или mysqli есть параметр, в который вы вводите имя своей базы данных.
Вот простой пример:
<?php $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
попробуй это
<?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"; ?>