Следующий PHP-код предназначен для удаления таблицы, если она существует, создать таблицу, использовать таблицу, а затем вставить строку в таблицу.Вставка строки в таблицу с использованием PHP MYSQL
Все работает отдельно от вставки. Я новичок в PHP и MYSQL, и я пробовал много перестановок разных типов кавычек (синглов, парных, одно: `), но не могу получить данные, которые нужно вставить в таблицу.
Может кто-нибудь пролить свет на то, что не так с этим?
$retval = mysqli_query($conn,'INSERT INTO `performance` (manager, program, programid, yearmonth, performance) VALUES ("manager1", "program1","programid1", "199901", "-3.4")');
РНР скрипт ниже дает результат:
Connected успешно
Таблица успешно отброшен.
DB б/у успешно.
Таблица создана успешно.
Не удалось вставить данные.
Так что все отработало от вставки.
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
$retval = mysql_query('DROP TABLE IF EXISTS `managedfutures`.`performance`') or die(mysql_error());
if(! $retval)
{
die('Could not drop table ' . mysql_error());
}
echo "Table dropped successfully.";
echo "<br>";
$retval = mysql_query("USE managedfutures", $conn);
if(! $retval)
{
die('Could not use DB' . mysql_error());
}
echo "DB used successfully.";
echo "<br>";
$sql = "CREATE TABLE performance(".
"performance_id INT NOT NULL AUTO_INCREMENT, ".
"manager VARCHAR(255) NOT NULL, ".
"program VARCHAR(255) NOT NULL, ".
"programid VARCHAR(255) NOT NULL, ".
"yearmonth VARCHAR(6) NOT NULL, ".
"performance FLOAT NOT NULL, ".
"PRIMARY KEY (performance_id)); ";
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not create table: ' . mysql_error());
}
echo "Table created successfully.";
echo "<br>";
$retval = mysqli_query($conn,'INSERT INTO `performance` (manager, program, programid, yearmonth, performance) VALUES ("manager1", "program1","programid1", "199901", "-3.4")');
if(! $retval)
{
die('Could not insert data. ' . mysql_error());
}
echo "Data inserted successfully.";
echo "<br>";
return;
Благодаря Mike W, указав, что у меня были смешанные команды mysql и mysqli! Я новичок в php/mysql и не понимаю, что между ними существует разница. Также была другая ошибка, я вводил число в виде строки в инструкции insert. То есть Я написал «-3.4» вместо -3.4.
Для полноты, это фиксированная версия, которая работает.
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($mysqli->connect_errno) {
die("Failed to connect to MySQL: " . $mysqli->connect_error);
}
echo 'Connected successfully<br />';
$retval = mysqli_query($mysqli,"DROP TABLE IF EXISTS `performance`");
if(! $retval)
{
die('Could not drop table ' . $mysqli->query_error);
}
echo "Table dropped successfully.";
echo "<br>";
$sql = "CREATE TABLE performance(".
"performance_id INT NOT NULL AUTO_INCREMENT, ".
"manager VARCHAR(255) NOT NULL, ".
"program VARCHAR(255) NOT NULL, ".
"programid VARCHAR(255) NOT NULL, ".
"yearmonth VARCHAR(6) NOT NULL, ".
"performance FLOAT NOT NULL, ".
"PRIMARY KEY (performance_id)); ";
$retval = mysqli_query($mysqli, $sql);
if(! $retval)
{
die('Could not create table: ' . $mysqli->query_error);
}
echo "Table created successfully.";
echo "<br>";
$retval = mysqli_query($mysqli, "INSERT INTO `performance` (`manager`, `program`,`programid`, `yearmonth`, `performance`) VALUES ('manager1', 'program1','programid1', '199901', -3.4)");
if(! $retval)
{
die('Could not insert data. ' . $mysqli->query_error);
}
echo "Data inserted successfully.";
echo "<br>";
return;
, задавая вопрос, если шесть вещей работать и один не просто разместить код для сломавшегося, благодаря –
Просто запустите запрос отдельно в PhpMyAdmin и проверьте, работает ли ваш запрос. –
@Dagon хорошо на самом деле кажется, что я допустил ошибку при смешивании mysql и mysqli, о которых я не знал, были такие разные вещи, и если бы я не разместил все вещи, то никто бы не смог указать это, а затем неизбежно кто-то попросит меня опубликовать более полный пример с более подробными сведениями о том, что я делаю. Я думаю, это идет показать: вы не можете угодить всем людям все время! –