php - 使用 PHP MYSQL 向表中插入一行

标签 php mysql

以下 php 代码的目的是删除一个表(如果存在)、创建表、使用表,然后向表中插入一行。

除插入外,一切正常。我是 PHP 和 MYSQL 的新手,我尝试了多种不同类型引号的排列组合(单引号、双引号、这个:`),但无法将数据插入到表中。

任何人都可以阐明这有什么问题吗?

$retval = mysqli_query($conn,'INSERT INTO `performance` (manager, program, programid, yearmonth, performance) VALUES ("manager1", "program1","programid1", "199901", "-3.4")');

下面的 php 脚本给出了输出:

Connected successfully

Table dropped successfully.

DB used successfully.

Table created successfully.

Could not insert data.

所以除了插入之外,一切都有效。

$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 的新手,并没有意识到两者之间存在差异。还有另一个错误,我在插入语句中输入了一个数字作为字符串。 IE。我写的是“-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;

最佳答案

您正在混合调用 mysql_*()mysqli_*() 调用。两者是不同的,不能一起使用。 mysql_*() 已弃用 - 仅使用 mysqli_*()

关于php - 使用 PHP MYSQL 向表中插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890222/

相关文章:

php - 将单选按钮值从 HTML 表存储到 MySQL 表

php - 在 Bitnami LAMP 堆栈中设置和访问 PHP-FPM 状态页面

php - 使用 PDO 删除用户

C# 使用多个查询填充数据表mysql数据库

c# - 需要将存储在mysql中的图像路径中的图像显示到C#中的 Crystal 报表查看器(VS 2008)

MySQL 存储过程变量格式在 SELECT 语句中不起作用

mysql - 查找序列中的错误

javascript - 调用函数 ogads load.php

mysql - VB.Net重用sql连接

php - WordPress 插件短代码始终显示在顶部