我试图用php更新mysql表中的行,但由于某种原因它不起作用。
我对变量进行了验证和一些检查,所有这些都很有效,当我在php语句中var_dump变量时一切都很好,所以我猜问题是在mysql的查询代码中。如果你能帮助我,我会很高兴的!
这是php部分:
if (isset($_POST['editIdea'])) {
$editIdea = trim($_POST['editIdea']);
$editIdea = preg_replace('/[^А–Яа-яА-ЯA-Za-z0-9\. -!?,.@]/u', '', $editIdea);
$editMoney = trim($_POST['editMoney']);
$editMoney = preg_replace('/[^0-9\.]/', '', $editMoney);
$editLong = trim($_POST['editLong']);
$editLong = preg_replace('/[^А–Яа-яА-ЯA-Za-z0-9\. -!?,.@]/u', '', $editLong);
$idnow = $_SESSION['id'];
$error = false;
if(mb_strlen($editIdea)<3 || mb_strlen($editIdea)>40) {
echo '<b><p id="wrongname"> *blabla1 </b></p>';
$error=true;
}
if(mb_strlen($editLong)<9 || mb_strlen($editLong)>400) {
echo '<b><p id="wronglongtext">*blabla2</b></p>';
$error=true;
}
if($editMoney == false) {
echo '<b><p id="wrongmoney"> *blabla3 </p> </b>';
$error=true;
}
if (!$error){
var_dump($editIdea);
var_dump($editMoney);
var_dump($editLong);
$sql = "UPDATE `Registration` SET `nameidea` = '$editIdea' , `moneyidea` = '$editMoney' , `explainidea`= '$editLong' WHERE `id` = '$idnow' ";
}
else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
再说一遍我迄今为止的进展:
查询语句附近的所有var_dump都运行良好,变量具有我想要发送的信息。 php日志中没有错误。 该声明不会出现在其他地方,因此我无法看到任何错误或更多信息。
此外,我正在尝试使用和不使用&#34;`&#34;在行和数据库名称附近。
查询语法中的mystake在哪里?
再次提前致谢!
**数据库和行的所有名称都是正确的并经过双重检查。
答案 0 :(得分:0)
在$ sql = ....
之后添加此代码$link = mysqli_connect("localhost", "my_user", "my_password", "db_name");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if (!mysqli_query($link, $sql)) {
printf("Error message: %s\n", mysqli_error($link));
}
/* close connection */
mysqli_close($link);