PHP,SQL查询保存';0';当从php表单中输入字符串时,在浮点数据库中

PHP,SQL查询保存';0';当从php表单中输入字符串时,在浮点数据库中,php,sql,phpmyadmin,Php,Sql,Phpmyadmin,当数据类型错误时,网站应中止查询。但我得到的是,如果我将字符串值放入浮点数据类型,它将另存为“0” <?php require('db_connect.php'); if (isset($_POST['prodName']) and isset($_POST['prodPrice']) and isset($_POST['prodQuantity'])){ // Assigning POST values to variables. $name = $_POST['prodNam

当数据类型错误时,网站应中止查询。但我得到的是,如果我将字符串值放入浮点数据类型,它将另存为“0”

<?php  
 require('db_connect.php');

if (isset($_POST['prodName']) and isset($_POST['prodPrice']) and isset($_POST['prodQuantity'])){

// Assigning POST values to variables.
$name = $_POST['prodName'];
$price = $_POST['prodPrice'];
$quantity = $_POST['prodQuantity'];

// CHECK FOR THE RECORD FROM TABLE
$query = "INSERT INTO product (name, price, quantity) VALUES ('$name','$price','$quantity')";

$result = mysqli_query($connection, $query) or die(mysqli_error($connection));

if ($query){

//echo "Login Credentials verified";
echo "<script type='text/javascript'>
    alert('Product Added');
    window.location.href='menu.php';
</script>";
}
else{
echo "
<script type='text/javascript'>
    alert('Invalid Login Credentials');
    window.location.href='login.php';
</script>";
//echo "Invalid Login Credentials";
}
}
?>

请将$result而不是$query置于if条件中。对于“0”查询结果,如果我没有错,则表示false,即您尝试插入的数据由于错误(很可能是数据类型)而无法保存。在插入之前,您应该首先验证$\u POST值

例如:

if (is_float($_POST['prodName']) === false || is_float($_POST['prodPrice']) === false 
|| is_float($_POST['prodQuantity']) === false) 
&& echo "<script type='text/javascript'>
alert('Invalid Login Credentials');
window.location.href='login.php'; </script>";
if(is_float($_POST['prodName'])==false;| is_float($_POST['prodPrice'])==false
||is_float($_POST['prodQuantity'])==false)
&&回声“
警报(“无效登录凭据”);
window.location.href='login.php';“;

通过验证,您可以防止不需要的值进入数据库,并将危及整个web应用程序的风险降至最低。

谢谢,我没有意识到我的错误