【问题标题】:Inserting data to table (mysqli insert) [duplicate]将数据插入表(mysqli insert)[重复]
【发布时间】:2013-05-26 00:05:48
【问题描述】:

我已经查看这段代码一段时间了,但我看不出问题出在哪里。我一直在阅读整个 StackOverflow,但仍然看不到我的错误在哪里。

<?php

mysqli_connect("localhost","root","","web_table");
mysql_select_db("web_table") or die(mysql_error());

if (mysqli_connect_errno()) {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}
echo "<p> Connection Successful!"

mysqli_query('INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');


echo "<p>Insert successfull";

?>

错误在第 13 行某处,即mysqli_query('insert...。我试图通过http://www.w3schools.com/php/php_mysql_insert.asp 帮助自己,但对我没有多大帮助。

【问题讨论】:

标签: php database mysqli sql-insert


【解决方案1】:

警告:切勿出于学习目的参考 w3schools。他们的教程有很多错误。

根据mysqli_query文档,第一个参数必须是连接字符串:

$link = mysqli_connect("localhost","root","","web_table");

mysqli_query($link,"INSERT INTO web_formitem (`ID`, `formID`, `caption`, `key`, `sortorder`, `type`, `enabled`, `mandatory`, `data`)
VALUES (105, 7, 'Tip izdelka (6)', 'producttype_6', 42, 5, 1, 0, 0)");

注意:在插入查询中为列名添加反引号`,因为您的某些列名是保留字。

【讨论】:

  • 问题仍然在同一行.. (mysqli_query..) 并没有解决问题。感谢关于 w3 的建议。
  • 请在此处发布您的完整错误。还要用反引号检查我的更新答案
  • ( ! ) 解析错误:语法错误,意外的 T_STRING,期待 ',' 或 ';'在第 14 行的 C:\wamp\www\bilform\insert.php 中仍然是相同的 S*?t
  • 垃圾箱?你能说得更具体些吗?
  • @Blue - 实际上您在 mysqli_query 上方的 echo 语句之后错过了 ;
【解决方案2】:

在mysqli_query中(第一个参数应该是连接,你的sql语句) 所以

$connetion_name=mysqli_connect("localhost","root","","web_table") or die(mysqli_error());
mysqli_query($connection_name,'INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');

但最佳做法是

$connetion_name=mysqli_connect("localhost","root","","web_table") or die(mysqli_error());
$sql_statement="INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)";
mysqli_query($connection_name,$sql_statement);

【讨论】:

【解决方案3】:

好的,当然问题已经回答了,但似乎没有人注意到您的代码的第三行。它不断地困扰着我。

    <?php
    mysqli_connect("localhost","root","","web_table");
    mysql_select_db("web_table") or die(mysql_error());

由于某种原因,您建立了与服务器的 mysqli 连接,但您正在尝试建立与数据库的 mysql 连接。开始吧,而不是使用

       $link = mysqli_connect("localhost","root","","web_table");
       mysqli_select_db ($link , "web_table" ) or die.....

或者我开始的地方

     <?php $connection = mysqli_connect("localhost","root","","web_table");       
      global $connection; // global connection to databases - kill it once you're done

或者只是使用 $connection 参数作为上面的另一个参数进行查询。摆脱第三行。

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 2016-04-05
    • 2015-02-27
    • 2020-03-02
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多