【问题标题】:PHP or MySql Wont Update DatabasePHP 或 MySql 不会更新数据库
【发布时间】:2012-12-27 08:31:51
【问题描述】:

我已经发布了这个问题 2 次都没有工作我重新编写了它的脚本,现在我遇到了更多问题

这是我在第一页上的代码:

<?php

$host="XXXX"; // Host name 
$username="XXXX"; // Mysql username 
$password="XXXX"; // Mysql password 
$db_name="XXXX"; // Database name 
$tbl_name="XXXX"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// select record from mysql 
$sql="SELECT * FROM $tbl_name order by id desc";
$result=mysql_query($sql);
?>
<table background='images/view.png' width='50%'>
<tr>
<th align='center'>Post #</th><th align='center'>Submition By</th><th     align='center'>ScreenName</th><th align='center'>Password</th><th align='center'>Does This     Work?</th><th align='center'>Vote</th>
</tr>
<tr>
<th align='center'>
<hr color='lime' width='100%'/>
</th>
<th align='center'>
<hr color='lime' width='100%'/>
</th>
<th align='center'>
<hr color='lime' width='100%'/>
</th>
<th align='center'>
<hr color='lime' width='100%'/>
</th>
<th align='center'>
<hr color='gold' width='100%'/>
</th>
<th align='center'>
<hr color='gold' width='100%'/>
</th>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td background='transparent' align='center'><i><b><? echo $rows['id']; ?> </b></i></td>
<td background='transparent' align='center'><i><b><? echo $rows['yname']; ?> </b></i>    </td>
<td background='transparent' align='center'><i><b><? echo $rows['username']; ?></b></i></td>
<td background='transparent' align='center'><i><b><? echo $rows['password']; ?></b></i></td>
<td background='transparent' align='center'><i><b><? echo $rows['works']; ?>% Yes <font  color='transparent'>||||</font>&nbsp; <? echo $rows['dworks']; ?>% No</b></i>
<td background='transpatent' align='center'><i><b><a href='works.php?id=<? echo $rows['id']; ?>'><img src='images/ThumbsUp.png' height='30' width='30'>  </a>&nbsp;&nbsp;&nbsp;<a href='dworks.php?id=<? echo $rows['id']; ?>'><img   src='images/ThumbsDown.png' height='30' width='30'></a>

</td> 
</tr>

<?php
// close while loop 
}
?>

<?php
// close connection; 
mysql_close();
?>

</table>

我不确定这个页面是否是问题的一部分...

这是第二页

<?php
$host="XXXX"; // Host name 
$username="XXXX"; // Mysql username 
$password="XXXX"; // Mysql password 
$db_name="XXXX"; // Database name 
$tbl_name="XXXX"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar
$id=$_GET['id'];

// Retrieve data from database 
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>


<?php
$host="XXXX"; // Host name 
$username="XXXX"; // Mysql username 
$password="XXXX"; // Mysql password 
$db_name="XXXX"; // Database name 
$tbl_name="XXXX"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database 
$sql="UPDATE `$host`.`$username` 
SET `works` = `works` + 1 WHERE `$db_name`.`id` = '".$id."'";
$result=mysql_query($sql);

// if successfully updated. 
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='list_records.php'>View result</a>";
}

else {
echo "ERROR";
}

?>

我在我的自定义错误页面上收到错误,我不知道为什么.. 我试图让它在我的表上的名为 works 的列中添加 +1,默认值为 0,我无法获得它添加 +1 说值为 1 并且有人单击图像链接值更改为 2 并且再次单击它转到 3 依此类推

是的,这是真实的 mysql 登录信息,这不是我的烫发网站,它只是为了测试我的代码以放在我的真实网站上,所以我不在乎分享它

【问题讨论】:

  • @JaredFarrish 是的,但就像我说的那样,我不介意它不是我真正的 mysql 数据库,它可以为我的真实站点测试代码
  • 错误是什么?小心获取 GET 参数并将其放入查询中,它可能用于注入。
  • 你遇到了什么错误?
  • @Jackopo 我在最后一组 php 代码中设置了一个自定义错误,我得到了一个名为 ERROR 的错误!
  • 删除那个自定义错误!!!

标签: php html mysql sql phpmyadmin


【解决方案1】:

更改关注

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$link=mysql_connect($host, $username, $password); 
if (!$link) {
    die('Not connected : ' . mysql_error());
}
$db_selected=mysql_select_db("$db_name", $link);
if (!$db_selected) {
    die('Not selected : ' . mysql_error());
}

获取数据并打印

$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
if(mysql_num_rows($result))
{
    while($row = $result->fetch_assoc()) {
        echo 'id: '. $row['id'].'<br />'; // replace with real field name
        echo 'name: '. $row['name']'<br />'; // replace with real field name
    }
 }

【讨论】:

  • 第一个、第二个还是第三个
  • @TheWhiteHatter,你没有打印任何东西,检查更新。
  • $sql="SELECT * FROM $tbl_name WHERE id='$id'"; $result=mysql_query($sql); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo $row['id']; // 替换为真实的字段名 echo $row['name']; // 替换为真实的字段名 } what
  • 找到它,我把它拿回来了 4test
【解决方案2】:

将最后一个查询更改为 $sql="UPDATE tylted SET works = works + 1 WHERE id = $id;"; $result=mysql_query($sql);它的工作原理我谷歌搜索了 9 或 10 分钟,发现 MySQL Update Column +1?我也在这里搜索过,但它没有用感谢人们提供的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2014-01-26
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多