Software auslesen und an mysql schicken

  • Hallo Leute,

    Ich habe ein kleines Problem. Ich lese meine Software (über regedit) vom Computer aus und übergebe Sie an eine mysql datenbank.
    verwende das mysql UDF mit der libmysql.dll

    Soweit funktioniert auch alles... jetzt habe ich das Problem wenn eine Software ein ' enthält ... dann bekomm ich eine Syntax fehlermeldung.
    OK ist mir auch klar warum weil mysql meint es wäre abgeschlossen und ich muss es escapen also \' sollte es heißen...

    Jetzt wollte ich fragen ob es ein UTF oder ob es in Auto IT vl. von haus aus schon solch eine Funktion gibt.

    die Query schaut so aus:

    [autoit]


    Local $name_inventory_software = "soft_name, soft_version, soft_producer"
    Local $value_inventory_software = "'"&$Software[$i][0]&"','"&$Software[$i][1]&"','"&$Software[$i][2]&"'"

    $query = "INSERT INTO inventory_software ("&$name_inventory_software&") VALUES ("&$value_inventory_software&") "
    $mysql_bool = _MySQL_Real_Query($MysqlConn, $query)

    [/autoit]

    gibt es also eine leichte möglichkeit das ich das ganze $value_inventory_software escape?

    vielen lieben dank für eure bemühungen

    Edit:Wenn ich das tool mal von den "kinderkrankheiten" beseitigt habe werde ich es hier posten. bzw vl. will ja auch jemand mitarbeiten.
    Hintergrund: Computerdaten, Netzwerkarten, installierte Software, installierte Drucker, Monitore, ... werden ausgelesen und in eine MYSQL datenbank gespeichert.
    Also ein Komplettes Inventory Tool. Danach werde ich mittels PHP (Zend Framework) noch eine Plattform errichten wo man die Daten schön Übersichtlich sieht

  • edit: hab die funktion gefunden:

    [autoit]

    _MySQL_Real_Escape_String($MysqlConn,$String)

    [/autoit][autoit]


    Func _MySQL_Real_Escape_String($MySQL_ptr, $From, $FromLen = Default)
    If Not $MySQL_ptr Then Return SetError(3,0,'')
    If $FromLen <= 0 Or $FromLen = Default Then $FromLen = StringLen($From)
    Local $TO = DllStructCreate("char[" & $FromLen * 2 + 1 & "]")
    Local $query = DllCall($ghMYSQL_LIBMYSQL, "int", "mysql_real_escape_string", "ptr", $MySQL_ptr, "ptr", DllStructGetPtr($TO), "str", $From, "ulong", $FromLen)
    If @error Then Return SetError(1, 0, 0)
    Return StringLeft(DllStructGetData($TO, 1), $query[0])
    EndFunc ;==>_MySQL_Real_Escape_String

    [/autoit]

    trotzdem vielen dank an alle