**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
20小时前关门了。
Improve this question
我已经写了一个脚本来复制客户端数据从我们的旧系统到新系统,它给我上面的错误消息。
我知道这个脚本不是很安全,但是它位于内部网络上,通过防火墙规则不对互联网开放。我非常密切地监视脚本的使用(当我让它工作时,哈哈)
完整错误消息
致命错误:未捕获的mysqli_sql_异常:SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,在sender.php:16第1行的'from cic_remus.contacts where(id =' 127 ')'附近使用正确的语法堆栈跟踪:第0个发件人.php(16):mysqli_query()#1 {main}在第16行的sender.php中抛出
我已经看过了代码,一切似乎都是正确的,似乎看不出问题是什么。
这两个表是相同的,使用相同版本的PHP 8.2,并且位于相同的服务器上。
我知道我可以只导出和导入,但我们是手动审查哪些信息,这是我们最简单的方法。
代码;
<?php
$databaseHost = 'localhost';
$databaseName = '';
$databaseUsername = '';
$databasePassword = '';
$mysqli = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName);
$id = $_GET['id'];
$sql="select from cic_remus.contacts where (id='$id');";
$res=mysqli_query($mysqli,$sql);
if (mysqli_num_rows($res) > 0) {
// output data of each row
$row = mysqli_fetch_assoc($res);
if($id==$row['id'])
{
echo "Already copied";
}
} else{
$query=mysqli_query($mysqli,"INSERT INTO cic_kenobi.contacts (status, image, datemovedin, learner_id, title, name, last_name, sex, dob, house_number, address_line_one, address_line_two, city_town, country, postcode, postcode_enrolment, phone, mobile_number, email_address, ethnic_origin, ethnicitys, health_problem, health_disability_problem_if_yes, lldd, education_health_care_plan, health_problem_start_date, education_entry, emergency_contact_details, employment_paid_status, employment_date, unemployed_month, education_training_prior, education_claiming, claiming_if_yes, household_situation, mentor, intext)
SELECT status, image, datemovedin, learner_id, title, name, last_name, sex, dob, house_number, address_line_one, address_line_two, city_town, country, postcode, postcode_enrolment, phone, mobile_number, email_address, ethnic_origin, ethnicitys, health_problem, health_disability_problem_if_yes, lldd, education_health_care_plan, health_problem_start_date, education_entry, emergency_contact_details, employment_paid_status, employment_date, unemployed_month, education_training_prior, education_claiming, claiming_if_yes, household_situation, mentor, intext
FROM cic_remus.contacts WHERE id =$id");
echo "Successfully copied";
}
?>
1条答案
按热度按时间ct2axkht1#
查看您的脚本,似乎缺少要从查询中选择的列。
根据使用情况,我认为您只需要获取一列,即
id
,因此可以尝试:编辑:注意这个摘录来自OP的问题,这里有一个SQL注入漏洞,所以你可能想参数化这个查询(即不要信任
$id
,它来自一个用户)。此外,由于您无论如何都是按
id
进行过滤的,因此可以通过删除id
是否相同的额外检查(如果有结果,它总是相同的)来简化一点。一般来说,MySQL错误通常会给予您以问题 * 开头 * 的查询块,因此在本例中,线索是问题要么与单词
from
有关,要么就在它之前。