【问题标题】:Can't change the MySQL Variable with a simple HTML form无法使用简单的 HTML 表单更改 MySQL 变量
【发布时间】:2013-03-05 22:34:42
【问题描述】:

当我尝试这段代码时,我得到一个错误:

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/content/28/10527728/html/TestSite/page.php on line 20
Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/content/28/10527728/html/TestSite/page.php on line 20
Warning: mysql_query() expects parameter 2 to be resource, null given in /home/content/28/10527728/html/TestSite/page.php on line 21
Could not update data: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

代码:

<?php
 ob_start();
 session_start();
 if(!isset($_SESSION['Username'])){
     header("Location: page.php");
 }    

  if(isset($_POST['update']))
  {
        $Memberid = $_POST['Memberid'];
        $Username = $_POST['Username'];

        $sql = "UPDATE members ".
   "SET Username = $Username ".
   "WHERE Memberid = $Memberid" ;

  mysql_select_db($finalform);
  $retval = mysql_query( $sql, $conn );
  if(! $retval )
  {
    die('Could not update data: ' . mysql_error());
  }
  echo "Updated data successfully\n";
  mysql_close($conn);
        }
  else
  {
  ?>

用于编辑成员表的用户名的 HTML,采用数据库最终形式;

  <form method="post" action="<?php $_PHP_SELF ?>">
  <table width="400" border="0" cellspacing="1" cellpadding="2">
  <tr>
  <td width="100">Name</td>
  <td><input name="Username" type="text" id="Username"></td>
  </tr>

  <td width="100"> </td>
  <td>
  <input name="update" type="submit" id="update" value="Update">
  </td>
  </tr>

  </table>
  </form>

  <?php
  } //Curly bracket close from the else from the begining
  ?>

  </body>
  </html>

【问题讨论】:

  • 你的mysql_connect在哪里?此外,您可能想查看mysqli_PDOmysql_ 已弃用。
  • 要扩展... mysql_* 函数将是 deprecated in PHP 5.5。不建议编写新代码,因为它会在未来被删除。相反,MySQLiPDObe a better PHP Developer
  • 请阅读描述 link_identifier 参数in the documentation 的部分 - 您可以不调用 mysql_connect 但仅在您的情况可能不满足的高度具体的条件下。完成并理解后,向上滚动并阅读关于 mysql_ 函数被弃用的大红色警告,即它们即将退出。

标签: php mysql database variables webforms


【解决方案1】:

您缺少mysql_connect() 函数。你正在关闭$conn,所以让我们使用它:

$conn = mysql_connect('localhost', 'user', 'pass');

话虽如此,你真的应该尝试使用PDO 或类似的替代方法

【讨论】:

  • 它已经包含在标题中,错误状态,当我将括号内的参数切换到我之前声明的变量名时。
【解决方案2】:
  $conn = mysql_connect( server, username, password );

即:

  $conn = mysql_connect( 'localhost', 'userName', 'yourPassword' );

我同意尝试 PDO,对于立即生效的解决方案,请尝试我的解决方案。

【讨论】:

  • 我不确定你的意思是什么 PDO?或者如果您可以建议任何其他简单的方法来更改给定 Memberid 的变量,例如 finalform 数据库的 Username,从 b>成员表。
  • PDO 是开发人员首选的新标准,是最新的数据库交互方式,看看这个网站,它展示了如何做你需要的简单 pdo:wezfurlong.org/blog/2004/may/first-steps-with-pdo
  • 那个也在connect.php中初始化
猜你喜欢
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
相关资源
最近更新 更多