PHP 更新 MySQL 列为空

标签 php mysql

我有一个 php 页面,您可以在其中输入数字,然后单击提交按钮,它应该会更新表中的列。 我遇到的问题是它没有更新值,只是留下一个空字段。

这行代码似乎有问题。

$update = mysql_query("UPDATE sip SET callerid = '$new' WHERE name = $trial");

如果我只是将 $new 更改为数字,它就可以正常工作。如果我 echo $new 我会得到一个数字。 $Trial 位也工作得很好。

我拥有的完整代码如下。

   <!DOCTYPE html>
<html>
<head>
  <title>Test</title>
<link href="/../site.css" rel="stylesheet">
</head>

<body>
<? include("../header.php") ?>  
<div id="main">


<?php
session_start();
$trial = $_SESSION['random'];
echo "Random: ".$trial;

if(empty($_SESSION['random'])) {
header("Location:/site/home.php");
}

   echo "<br />";
?>

    <form action="customer_details.php" method="post">
    Number: <input type="number" name="phone" id="phone" maxlength="4" min="1000" max="9999" />
     <br /><br />
    <input type="Submit" />

</form>


<?php
$link = mysql_connect('localhost', 'root', '');
mysql_select_db('test' , $link) or die("Unable to select database: asterisk" . mysql_error());


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

$phone = $_POST['phone'];



$result = mysql_query("SELECT * FROM table where number = '$phone'");
while ($row = mysql_fetch_array($result)) 
{

$data = $row['callerid'];
}

echo $phone;

if($phone = $data)
{

print '<script type="text/javascript">'; 
print 'alert("Number is already in database")'; 
print '</script>';

}
else {
$new = $phone;
$update = mysql_query("UPDATE sip SET callerid = '$new' WHERE name = $trial");

if(! $update )
{
  die('Could not update data: ' . mysql_error());
}
else
{
print '<script type="text/javascript">'; 
print 'alert("New Data added");'; 
print 'window.location.href = "../home.php";';
print '</script>';
}

}

}
?>

<? include("../footer.php") ?> 
</div>
</body>

</html>

最佳答案

您将 $phone 设置为 $data,而不是比较它们的值。

if($phone = $data)
{

print '<script type="text/javascript">'; 
print 'alert("Number is already in database")'; 
print '</script>';

}

$phone = $data更改为$phone == $data。现在,此条件 block 将始终执行,而 else(您的更新设置为运行的位置)则不会。

旁注:如果任一变量的值包含单引号,并且您使用单引号在查询中设置值(正如您应该的那样),那么这不仅仅是一个问题是一个注入(inject)漏洞,但它只是无法正确更新。

关于PHP 更新 MySQL 列为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22802244/

相关文章:

php - 如何检测 Android 应用程序的卸载并从服务器中删除相关用户的数据?

php - preg_replace 和日期

mysql - 如何设置 MySQL 表中的最大行数?

mysql - 在不首先创建表的情况下将一个非常大的制表符分隔文件导入 MySQL

mysql - 如何修复此在 WHERE 条件中使用 IF 语句的查询?

php - 创建一个按钮以允许用户将页面另存为文件?

php - 删除语句没有给出错误,但也不起作用

mysql - 报告查询中的记录日期

php - 如何从 php 中的 json_decode 获取 id

mysql - 执行并集和连接