插入时出错:对非对象调用成员函数query()

lg40wkob  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(338)

这个问题在这里已经有答案了

引用-这个错误在php中是什么意思(36个答案)
我可以在php中混合mysql api吗(4个答案)
在mysql中何时使用单引号、双引号和反引号(13个答案)
两年前关门了。
我有两个表-oldtbldata&tbldata,希望读取第一个表中的一行并将其插入第二个表中。一个新的列,txtnotes在旧表中不存在,我想把它设置为一个空格。
旧的tbldata有tbldata中不存在的行,我想将这些行作为新行插入tbldata。
我已经建立了一个原始连接(conn)来对匹配的txtwoodidcode条目进行初始搜索,如果发现一行不存在,我想使用conn2将其添加到tbldata。
初始代码为:

$conn = mysql_connect('localhost', '***', '*****');
if(! $conn )
  {
  die('Could not connect: ' . mysql_error());
  }

echo "Conn connected<br>";

$sql = 'SELECT oldtxtWoodIDcode FROM oldtbldata';
mysql_select_db('scw-db');

如果搜索未找到id,则转到以下代码:

{
    $conn2 = mysql_connect('localhost', '***', '***');
    if(! $conn2 )
      {
      die('Could not connect  #2: ' . mysql_error());
      }

    echo "Conn2 connected<br>";
    $sql_new = 'SELECT txtWoodIDcode FROM tbldata';
    mysql_select_db('scw-db');
    $retval = mysql_query( $sql, $conn2 );
    if(! $retval )
    {
      die('Could not get data from conn2: ' . mysql_error());
    }

    $sql_new = "INSERT INTO tbldata 
    (
        'txtWoodIDcode',
        'txtProductCode',
        'txtNotes',
        'txtSpecies',
    )
    VALUES 
    {
        'oldtxtWoodIDcode',
        'oldtxtProductCode',
        ' ',
        'oldtxtSpecies',
    )";

    echo "past the insert code<br>";

    if ($conn2->query($sql_new) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql_new . "<br>" . $conn2->error;
    }               
    mysql_close($conn2);
}

我得到的错误在if($conn2->query($sql\u new)==true)行:
致命错误:对非对象调用成员函数query()
是的,我收到“conn2 connected”信息,所以我应该连接到数据库。
我刚接触php/mysql,使用的是旧版本-所以我知道我需要升级-但以后需要升级。我现在只需要让这个代码工作。

6ioyuze2

6ioyuze21#

你有一些错误-你没有在mysql中$conn2->查询。。。使用mysql\u查询函数-在查询中使用单引号作为字段名“。。。您需要在kast字段后面使用`,并删除逗号

$conn2 = mysql_connect('localhost', '***', '***');
if(! $conn2 )
  {
  die('Could not connect  #2: ' . mysql_error());
  }

echo "Conn2 connected<br>";
$sql_new = 'SELECT txtWoodIDcode FROM tbldata';
mysql_select_db('scw-db');
$retval = mysql_query( $sql, $conn2 );
if(! $retval )
{
  die('Could not get data from conn2: ' . mysql_error());
}

$sql_new = "INSERT INTO tbldata 
(
    `txtWoodIDcode`,
    `txtProductCode`,
    `txtNotes`,
    `txtSpecies`
)
VALUES 
{
    'oldtxtWoodIDcode',
    'oldtxtProductCode',
    ' ',
    'oldtxtSpecies'
)";

echo "past the insert code<br>";

if ($conn2->query($sql_new) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql_new . "<br>" . $conn2->error;
}               
mysql_close($conn2);

相关问题