Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和Mysql试图在DB上运行代码_Php_Html_Mysqli - Fatal编程技术网

PHP和Mysql试图在DB上运行代码

PHP和Mysql试图在DB上运行代码,php,html,mysqli,Php,Html,Mysqli,你好 我不熟悉html、php,我正在尝试设置一个页面来运行sql查询,以便将数据从一个表移动到另一个表中。我遇到的问题是,我需要用户输入需要传递到查询的日期 我已经在网上查过了,并查看了这个问题,该问题被标记为的副本。我仍然无法让它工作 对于提交部分,我的Html如下所示 <div class = "boxed"> <p> First Date to be used for comparasion</p> <form method="post">

你好

我不熟悉html、php,我正在尝试设置一个页面来运行sql查询,以便将数据从一个表移动到另一个表中。我遇到的问题是,我需要用户输入需要传递到查询的日期

我已经在网上查过了,并查看了这个问题,该问题被标记为的副本。我仍然无法让它工作

对于提交部分,我的Html如下所示

<div class = "boxed">
<p> First Date to be used for comparasion</p>

<form method="post">

Date1: <input type="text" name="date1"/>
       <input type="Submit" value="submit"/>
</form>
</div>

用于比较的第一个日期

日期1:
我的Php是

<?php   
session_start();

include_once 'include/dbconf.php';

if(isset($_POST['date1']))

$d1 =  mysqli_real_escape_string($_POST['date1']);

$sql1 = "insert ignore into compare2 SELECT * FROM Compare where Date = 
'$d1'";
$sqldata = mysqli_query($sql1,$conn) or die ('error updaing Table');

echo "Table updated";

mysql_close($con)

?>
将代码更改为:

session_start();

include_once 'include/dbconf.php';

if(isset($_POST['date1'])) {
    $d1 =  mysqli_real_escape_string($conn, $_POST['date1']);

    $sql1 = "insert ignore into compare2 SELECT * FROM Compare where Date = '$d1'";
    $sqldata = mysqli_query($conn, $sql1) or die ('error updaing Table');

    echo "Table updated";
}

mysql_close($con);

需要2个参数。我建议您尝试PDO和准备好的语句。PDO比MySQLi好,prepared语句比带有转义字符串的查询好。希望
mysql\u close($con)
是一个输入错误:/使用
prepared语句
mysqli.*
PDO
。不要指望逃跑。它们不会阻止SQL注入。另外,
mysqli\u real\u escape\u string
需要两个参数,第一个参数是db connection object,在您的例子中它丢失了。@AllanvanStaden暂时将调试与php分开。手动生成的查询是否在您的phpMyAdmin中成功运行?请为您的答案添加解释,您做了什么,为什么它能工作?LenaCapo已更新为您的答案,但不幸的是没有工作
session_start();

include_once 'include/dbconf.php';

if(isset($_POST['date1'])) {
    $d1 =  mysqli_real_escape_string($conn, $_POST['date1']);

    $sql1 = "insert ignore into compare2 SELECT * FROM Compare where Date = '$d1'";
    $sqldata = mysqli_query($conn, $sql1) or die ('error updaing Table');

    echo "Table updated";
}

mysql_close($con);