无法将字符串(字母)插入mysql。数字工作正常

时间:2019-01-04 08:57:02

标签: php html mysql

所以在这里我遇到了另一个问题。我不能将字符串推入mysql表。如果我使用数字,则效果很好。如果我尝试插入文本作为值,它也可以正常工作。放在html文本框中的文本没有运气。

$current_user = wp_get_current_user();
$hostname = "XXX";
$username = "XXX";
$password = "XXX";
$dbname= "XXX";
$connect=mysqli_connect($hostname, $username, $password, $dbname);
$sql="insert into wypozyczenia (czy_wypozyczony, sn, model) values (2,"
.mysql_escape_string($_POST['SN']).",
".mysql_escape_string($_POST['model']).")";
if ($current_user->ID=2)
{
?><form name="form" method="post" >
Model:</br>
<input type="text" name="model"></br>
Numer Seryjny</br>
<input type="text" name="SN"></br>
<input type="submit" name="button1"  value="Send">
</form>
<?php
if(isset($_POST["button1"])){
$model=$_Post["model"];
$SN=$_Post["SN"];
?> <pre><?php var_dump($_POST); ?></pre><?php
mysqli_query($connect,$sql);}}

2 个答案:

答案 0 :(得分:4)

尝试在双引号之前添加单引号,如下所示:

$sql = "insert into wypozyczenia (czy_wypozyczony, sn, model) values (2, 
       '".mysql_escape_string($_POST['SN'])."',
       '".mysql_escape_string($_POST['model'])."')";

答案 1 :(得分:0)

您可以将sprintf用于美容代码或在PHP PDO中学习prepare语句

$sql = sprintf("insert into wypozyczenia (czy_wypozyczony, sn, model) values (2,'%s','%s')"
       ,mysql_escape_string($_POST['SN'])
       ,mysql_escape_string($_POST['model']));