【问题标题】:Using PHP to add to a database created in WAMP server?使用 PHP 添加到在 WAMP 服务器中创建的数据库?
【发布时间】:2013-12-03 13:08:31
【问题描述】:

好的,所以在安装 wamp 服务器后,我进入了 phpMyAdmin 页面并创建了一个名为 db2 的数据库。之后,我在该数据库中创建了一个名为 cnt2 的表。它有 5 列,ID、名称、Mark1、Mark2 和 Mark3。所以,我有一个 html php 文件,它允许您查看数据库中的信息,这很好用。但是,我的第二个 html php 文档应该允许您将新信息添加到数据库中。我已经关注了 2 个不同的教程,因为我以前从未做过 php 或任何 html 脚本,但它只是不起作用。我将在下面发布两个代码/脚本。

http://gyazo.com/467f8e3a066992c0753eec2d5912bdba

http://gyazo.com/82a1c2107fb75c4c2941583449b4504a

数据库代码

<html>
<body>

<?php

$username = "root";
$password = "";
$hostname = "localhost";

$dbhandle = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

$selected = mysql_select_db("db2",$dbhandle)
    or die("Could not selected db2");
echo "Coneted to db2<br>", "<br>";

$result = mysql_query("SELECT ID, Name, Mark1, Mark2, Mark3 FROM cnt2");

while($row = mysql_fetch_array($result)){
    echo "<b>Name: </b>".$row{'Name'}." <b>ID: </b>".$row{'ID'}." <b>First Mark: </b>".$row{'Mark1'}." <b>Second Mark: </b>".$row{'Mark2'}." <b>Third Mark: </b>".$row{'Mark3'}."<br>";
}

mysql_close($dbhandle);

?>

</body>
</html> 

输入代码

<HTML>
<?php

if($submit){
    $db = mysql_connect("localhost", "root","");
    mysql_select_db("db",$db);
    $sql = "INSERT INTO cnt2 (ID, Name, Mark1, Mark2, Mark3) VALUES ('$id','$name','$markone','$marktwo','$markthree','$result = mysql_query($sql))";
    echo "Thanks! Data received and entered.\n";
}

else{
    ?>
    <form method="post" action="datain.php">
    id:<input type="Int" name="ID"><br>
    name:<input type="Text" name="Name"><br>
    markone:<input type="Int" name="Mark1"><br>
    marktwo:<input type="Int" name="Mark2"><br>
    markthree:<input type="Int" name="Mark3"><br>
    <input type="Submit" name="submit" value="Enter information">
    </form>
<?  
}

?>
</HTML>

感谢您的帮助:)

【问题讨论】:

  • 拜托,看看你的代码,我猜你还在学习 PHP。如果是这样,请不要浪费时间学习像mysql_* 这样的已弃用 扩展。学习使用PDOmysqli_*。两者都适合他们:PDO 提供(IMO)最干净的 API,尽管它只是 OOP。 mysqli_* 提供了一个过程化的一个面向对象的 API,可能会有点混乱,而且学习起来乏味,但在它的代码中,它在编写更复杂的 DB 驱动的应用程序时稍微更强大
  • 在您的插入语句中,您的插入值似乎比列数多。我会检查这个作为开始。
  • 您确定您的插入代码与文件中的完全相同?因为 $result = mysql_query(.. 是您在上面发布的代码中的一个值。

标签: php html mysql wamp


【解决方案1】:

您实际上并没有要求您的帖子标题将您的变量拉入

<html>
<?php

if($submit){
    //need to request post vars here
    $id=mysql_real_escape_string($_POST['ID']);
    $name=mysql_real_escape_string($_POST['Name']);
    $markone=mysql_real_escape_string($_POST['Mark1']);
    $marktwo=mysql_real_escape_string($_POST['Mark2']);
    $markthree=mysql_real_escape_string($_POST['Mark3']);


    $db = mysql_connect("localhost", "root","");
    mysql_select_db("db",$db);
    $sql = "INSERT INTO cnt2 (ID, Name, Mark1, Mark2, Mark3) VALUES ('$id','$name','$markone','$marktwo','$markthree')";
    mysql_query($sql) or die(mysql_error()."<br />".$sql);
    echo "Thanks! Data received and entered.\n";
}

else{
    ?>
    <form method="post" action="datain.php">
    id:<input type="Int" name="ID"><br>
    name:<input type="Text" name="Name"><br>
    markone:<input type="Int" name="Mark1"><br>
    marktwo:<input type="Int" name="Mark2"><br>
    markthree:<input type="Int" name="Mark3"><br>
    <input type="Submit" name="submit" value="Enter information">
    </form>
<?php  // stop using short tags i've swapped it to a proper open
}

?>
</html>

此外,如果您只是使用不使用 mysql_ 函数,请查看 mysqli 或 pdo 尤其是准备好的语句,而不是像我们上面所做的那样直接将变量注入查询中

【讨论】:

  • 感谢您的帮助,但这只是在第 33 行而不是第 25 行引发了同样的错误。我不太了解这一点,这实际上就像我们对 php 的介绍任务没有真正的教学,只是一个教程表
  • @MarcelBalzer 谢谢没有注意到我只是复制并粘贴了他的代码并添加了对帖子变量的请求
  • @DanielSpeed 错误是屏幕截图中缺少结束标签意味着它缺少 } 这是由于您使用短标签 &lt;? 而不是完全打开的 &lt;?php 永远不会使用短标签标签
  • 哦,我明白了,对此我很抱歉,我没有任何借口。我一直盯着教程表,一定是错过了。非常感谢:)
【解决方案2】:

问题可能出在这一行:

$sql = "INSERT INTO cnt2 (ID, Name, Mark1, Mark2, Mark3) VALUES ('$id','$name','$markone','$marktwo','$markthree','$result = mysql_query($sql))";

您可能会注意到(最后),它可能应该是这样的:

$sql = "INSERT INTO cnt2 (ID, Name, Mark1, Mark2, Mark3) VALUES ('$id','$name','$markone','$marktwo','$markthree')";
$result = mysql_query($sql);

正如所有其他人所提到的,不要使用 mysql_* 函数,因为它们已被弃用,而不是使用 PDO 或至少 mysqli

还有部分

if($submit){

可能永远不会满足,除非您之前在某处设置了 $submit 变量...不应该是这样

if (isset($_POST['submit'])) {

???

还有,请阅读代码格式 - 您的代码看起来很垃圾...最好的选择是坚持使用 PSR-0、PSR-1 和 PSR-3 - 使用 Google 阅读内容关于它...

【讨论】:

  • 感谢您的帮助,但仍然出现相同的错误。我会坐下来实际阅读一些关于此的内容,但我再也不会使用它了。这个任务是一次性的,它应该帮助我们在我们的一堂课中理解一些服务器的东西,但他们让我们真正写它。
  • 当你永远不会使用 PHP 时,你为什么还要学习它?为什么我们会浪费时间和不想学习的人在一起?实际上错误是什么?您没有在您的问题中提及任何错误消息...
  • 我们必须完成这个需要 php 的任务,我很乐意学习,但我们使用 Java 进行编程单元。实际发布的问题有一个指向错误消息的链接,作为 gyazo 屏幕截图。
【解决方案3】:

创建数据库 android_api /** 创建数据库 **/

use android_api /** 选择数据库 **/

创建表用户( id int(11) 主键 auto_increment, unique_id varchar(23) 非空唯一, 名称 varchar(50) 不为空, 电子邮件 varchar(100) 不为空唯一, encrypted_pa​​ssword varchar(80) 不为空, salt varchar(10) 不为空, created_at 日期时间, updated_at 日期时间 null ); /** 创建用户表 **/

【讨论】:

  • 你能发给我如何在 wampserver 中编写
  • 嗨,omkar 更多,您是想寻求帮助还是想回答问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 2020-08-02
  • 2014-10-12
  • 1970-01-01
相关资源
最近更新 更多