到目前为止,我只学习了php和sql的基础知识,并且需要一些指导。 我有以下代码来更新sql表中的行 - 这可以正常工作:
<?php
$hostname = "localhost";//host name
$dbname = "dpuqsevb_tnysx";//database name
$username = "dpuqsevb_user";//username you use to login to php my admin
$password = "password";//password you use to login
//CONNECTION OBJECT
//This Keeps the Connection to the Databade
$conn = new MySQLi($hostname, $username, $password, $dbname) or die('Can not connect to database')
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<?php
if(isset($_POST['Submit'])){//if the submit button is clicked
$url_code = $_POST['url_code'];
$update = "UPDATE url_urls SET url_code='$url_code' WHERE id = 7";
$conn->query($update) or die("Cannot update");//update or error
}
?>
<?php
//Create a query
$sql = "SELECT * FROM url_urls WHERE id = 7";
//submit the query and capture the result
$result = $conn->query($sql) or die(mysql_error());
$query=getenv(QUERY_STRING);
parse_str($query);
?>
<form action="" method="post">
<?php
while ($row = $result->fetch_assoc()) {?>
<table border="0" cellspacing="10">
<tr>
<td><input type="text" name="url_code" value="<?php echo $row['url_code']; ?>"></td>
</tr>
<tr>
<td><INPUT TYPE="Submit" VALUE="Update the Record" NAME="Submit"></td>
</tr>
</table>
<?php }
?>
</form>
<?php
if($update){//if the update worked
echo "<b>Update successful!</b>";
}
?>
但是我希望脚本检查其他行,这样就没有$ url_code的重复 - 换句话说$ url_code必须是唯一的。
答案 0 :(得分:1)
最简单的解决方案是在数据库中将列url_code
定义为UNIQUE
。
现在,当您尝试插入数据库中已存在url_code
的值时,您的查询将失败。这也可以通过PHP完成,但我真的建议使用SQL解决方案 - 您的数据库已针对此类工作进行了优化。