使用PHP将数据插入MySQL时出错[重复]

问题描述 投票:-2回答:2

这个问题在这里已有答案:

发生了最奇怪的事情。我可以在XAMPP中运行它。但当我移动到使用套接字连接的服务器时,它会连接,但我无法插入。我想知道它是否由于插座而我需要以不同的方式做事。我改为= new mysqli,因为mysql_connect无法使用套接字。但除此之外,我有点失落。当我运行test.php时,我得到了

错误:()

test.php的

    <?php
    $dbhost = "localhost";
    $socket = ":/diskID/mysql/socket";
    $dbname = "TUTORIALS";
    $dbusername = "root";
    $dbpassword = "password";

    $mysqli = new mysqli($dbhost,$dbusername,$dbpassword,$dbname,$socket);

    //Output any connection error
    if ($mysqli->connect_error) {
       die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    $product_name = '"'.$mysqli->real_escape_string('P1234').'"';

    //MySqli Insert Query
    $insert_row = $mysqli->query("INSERT INTO tutorials_inf (name)VALUES($product_name)");

    if ($insert_row) {
        print 'Success! ID of last inserted record is : ' .$mysqli->insert_id .'<br />'; 
    } else {
        die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    }
php mysql sockets mysqli
2个回答
0
投票

在进行MySQL查询时,您应该使用单引号而不是引号。

尝试使用:

<?php
$dbhost = "localhost";
$socket = ":/diskID/mysql/socket";
$dbname = "TUTORIALS";
$dbusername = "root";
$dbpassword = "password";

$mysqli = new mysqli($dbhost,$dbusername,$dbpassword,$dbname,$socket);

//Output any connection error
if ($mysqli->connect_error) {
   die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}

$product_name = "'".$mysqli->real_escape_string('P1234')."'";

//MySqli Insert Query
$insert_row = $mysqli->query("INSERT INTO tutorials_inf (name)VALUES(" . $product_name . ")");

if ($insert_row) {
    print 'Success! ID of last inserted record is : ' .$mysqli->insert_id .'<br />'; 
} else {
    die('Error : ('. $mysqli->errno .') '. $mysqli->error);
}

0
投票

我不确定这是否是答案,但查询中的$ product_name应该是带有单引号的'$ product_name'

如果这不起作用,请在下面进行评论,我将调试整个代码

© www.soinside.com 2019 - 2024. All rights reserved.